Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Iris
Iris
Commits
eaf63996
Commit
eaf63996
authored
Nov 11, 2017
by
Robbert Krebbers
Browse files
Make sure that anonymous hypotheses do not use some random old name.
parent
93ddf981
Changes
3
Hide whitespace changes
Inline
Sidebyside
theories/base_logic/lib/wsat.v
View file @
eaf63996
...
...
@@ 104,7 +104,7 @@ Qed.
Lemma
ownI_open
i
P
:
wsat
∗
ownI
i
P
∗
ownE
{[
i
]}
⊢
wsat
∗
▷
P
∗
ownD
{[
i
]}.
Proof
.
rewrite
/
ownI
/
wsat
!
lock
.
iIntros
"(Hw & Hi & HiE)"
.
iDestruct
"Hw"
as
(
I
)
"[
?
HI]"
.
iIntros
"(Hw & Hi & HiE)"
.
iDestruct
"Hw"
as
(
I
)
"[
Hw
HI]"
.
iDestruct
(
invariant_lookup
I
i
P
with
"[$]"
)
as
(
Q
?)
"#HPQ"
.
iDestruct
(
big_opM_delete
_
_
i
with
"HI"
)
as
"[[[HQ $]HiE'] HI]"
;
eauto
.

iSplitR
"HQ"
;
last
by
iNext
;
iRewrite

"HPQ"
.
...
...
@@ 115,7 +115,7 @@ Qed.
Lemma
ownI_close
i
P
:
wsat
∗
ownI
i
P
∗
▷
P
∗
ownD
{[
i
]}
⊢
wsat
∗
ownE
{[
i
]}.
Proof
.
rewrite
/
ownI
/
wsat
!
lock
.
iIntros
"(Hw & Hi & HP & HiD)"
.
iDestruct
"Hw"
as
(
I
)
"[
?
HI]"
.
iIntros
"(Hw & Hi & HP & HiD)"
.
iDestruct
"Hw"
as
(
I
)
"[
Hw
HI]"
.
iDestruct
(
invariant_lookup
with
"[$]"
)
as
(
Q
?)
"#HPQ"
.
iDestruct
(
big_opM_delete
_
_
i
with
"HI"
)
as
"[[[HQ ?]$] HI]"
;
eauto
.

iDestruct
(
ownD_singleton_twice
with
"[$]"
)
as
%[].
...
...
@@ 128,7 +128,7 @@ Lemma ownI_alloc φ P :
wsat
∗
▷
P
==
∗
∃
i
,
⌜φ
i
⌝
∗
wsat
∗
ownI
i
P
.
Proof
.
iIntros
(
Hfresh
)
"[Hw HP]"
.
rewrite
/
wsat
!
lock
.
iDestruct
"Hw"
as
(
I
)
"[
?
HI]"
.
iDestruct
"Hw"
as
(
I
)
"[
Hw
HI]"
.
iMod
(
own_unit
(
gset_disjUR
positive
)
disabled_name
)
as
"HE"
.
iMod
(
own_updateP
with
"[$]"
)
as
"HE"
.
{
apply
(
gset_disj_alloc_empty_updateP_strong'
(
λ
i
,
I
!!
i
=
None
∧
φ
i
)).
...
...
@@ 150,7 +150,7 @@ Lemma ownI_alloc_open φ P :
(
∀
E
:
gset
positive
,
∃
i
,
i
∉
E
∧
φ
i
)
→
wsat
==
∗
∃
i
,
⌜φ
i
⌝
∗
(
ownE
{[
i
]}

∗
wsat
)
∗
ownI
i
P
∗
ownD
{[
i
]}.
Proof
.
iIntros
(
Hfresh
)
"Hw"
.
rewrite
/
wsat
!
lock
.
iDestruct
"Hw"
as
(
I
)
"[
?
HI]"
.
iIntros
(
Hfresh
)
"Hw"
.
rewrite
/
wsat
!
lock
.
iDestruct
"Hw"
as
(
I
)
"[
Hw
HI]"
.
iMod
(
own_unit
(
gset_disjUR
positive
)
disabled_name
)
as
"HD"
.
iMod
(
own_updateP
with
"[$]"
)
as
"HD"
.
{
apply
(
gset_disj_alloc_empty_updateP_strong'
(
λ
i
,
I
!!
i
=
None
∧
φ
i
)).
...
...
theories/heap_lang/lib/ticket_lock.v
View file @
eaf63996
...
...
@@ 153,7 +153,7 @@ Section proof.
wp_store
.
iDestruct
(
own_valid_2
with
"Hauth Hγo"
)
as
%[[<%
Excl_included
%
leibniz_equiv
_
]%
prod_included
_
]%
auth_valid_discrete_2
.
iDestruct
"Haown"
as
"[[Hγo' _]
?
]"
.
iDestruct
"Haown"
as
"[[Hγo' _]
Haown
]"
.
{
iDestruct
(
own_valid_2
with
"Hγo Hγo'"
)
as
%[[]
?].
}
iMod
(
own_update_2
with
"Hauth Hγo"
)
as
"[Hauth Hγo]"
.
{
apply
auth_update
,
prod_local_update_1
.
...
...
theories/proofmode/tactics.v
View file @
eaf63996
...
...
@@ 858,7 +858,11 @@ Tactic Notation "iModCore" constr(H) :=
Local
Tactic
Notation
"iDestructHyp"
constr
(
H
)
"as"
constr
(
pat
)
:
=
let
rec
go
Hz
pat
:
=
lazymatch
pat
with

IAnom
=>
idtac

IAnom
=>
lazymatch
Hz
with

IAnon
_
=>
idtac

INamed
?Hz
=>
let
Hz'
:
=
iFresh
in
iRename
Hz
into
Hz'
end

IDrop
=>
iClearHyp
Hz

IFrame
=>
iFrameHyp
Hz

IIdent
?y
=>
iRename
Hz
into
y
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment