Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
George Pirlea
Iris
Commits
c3c31e88
Commit
c3c31e88
authored
Oct 03, 2016
by
Robbert Krebbers
Browse files
Deallocation local updates for gset.
parent
5631e485
Changes
1
Hide whitespace changes
Inline
Side-by-side
algebra/gset.v
View file @
c3c31e88
...
...
@@ -174,6 +174,23 @@ Section gset_disj.
Proof
.
eauto
using
gset_disj_alloc_empty_updateP
.
Qed
.
End
fresh_updates
.
Lemma
gset_disj_dealloc_local_update
X
Y
Xf
:
GSet
X
~l
~>
GSet
(
X
∖
Y
)
@
Some
(
GSet
Xf
).
Proof
.
apply
local_update_total
;
split
;
simpl
.
{
rewrite
!
gset_disj_valid_op
;
set_solver
.
}
intros
mZ
?%
gset_disj_valid_op
.
rewrite
gset_disj_union
//.
destruct
mZ
as
[[
Z
|]|]
;
simpl
;
try
done
.
-
rewrite
{
1
}/
op
{
1
}/
cmra_op
/=.
destruct
(
decide
_
)
;
simpl
;
try
done
.
intros
[=].
do
2
f_equal
.
by
apply
union_cancel_l_L
with
X
.
-
intros
[=].
assert
(
Xf
=
∅
)
as
->
by
set_solver
.
by
rewrite
right_id
.
Qed
.
Lemma
gset_disj_dealloc_empty_local_update
X
Xf
:
GSet
X
~l
~>
GSet
∅
@
Some
(
GSet
Xf
).
Proof
.
rewrite
-(
difference_diag_L
X
).
apply
gset_disj_dealloc_local_update
.
Qed
.
Lemma
gset_disj_alloc_local_update
X
i
Xf
:
i
∉
X
→
i
∉
Xf
→
GSet
X
~l
~>
GSet
({[
i
]}
∪
X
)
@
Some
(
GSet
Xf
).
Proof
.
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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