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
e575e40d
Commit
e575e40d
authored
Nov 24, 2016
by
Jacques-Henri Jourdan
Browse files
Delete full slices.
parent
2f15e108
Changes
1
Hide whitespace changes
Inline
Side-by-side
base_logic/lib/boxes.v
View file @
e575e40d
...
...
@@ -104,7 +104,7 @@ Proof.
iFrame
;
eauto
.
Qed
.
Lemma
box_delete
E
f
P
Q
γ
:
Lemma
box_delete
_empty
E
f
P
Q
γ
:
↑
N
⊆
E
→
f
!!
γ
=
Some
false
→
slice
N
γ
Q
∗
▷
box
N
f
P
={
E
}=
∗
∃
P'
,
...
...
@@ -143,18 +143,6 @@ Proof.
iFrame
;
eauto
.
Qed
.
Lemma
box_insert_full
E
f
P
Q
:
↑
N
⊆
E
→
▷
Q
∗
▷
box
N
f
P
={
E
}=
∗
∃
γ
,
⌜
f
!!
γ
=
None
⌝
∗
slice
N
γ
Q
∗
▷
box
N
(<[
γ
:
=
true
]>
f
)
(
Q
∗
P
).
Proof
.
iIntros
(?)
"[HQ Hbox]"
.
iMod
(
box_insert_empty
with
"Hbox"
)
as
(
γ
)
"(% & #Hslice & Hbox)"
.
iExists
γ
.
iFrame
"%#"
.
iMod
(
box_fill
with
"[$Hslice $HQ $Hbox]"
).
done
.
by
apply
lookup_insert
.
by
rewrite
insert_insert
.
Qed
.
Lemma
box_empty
E
f
P
Q
γ
:
↑
N
⊆
E
→
f
!!
γ
=
Some
true
→
...
...
@@ -175,6 +163,33 @@ Proof.
iFrame
;
eauto
.
Qed
.
Lemma
box_insert_full
E
f
P
Q
:
↑
N
⊆
E
→
▷
Q
∗
▷
box
N
f
P
={
E
}=
∗
∃
γ
,
⌜
f
!!
γ
=
None
⌝
∗
slice
N
γ
Q
∗
▷
box
N
(<[
γ
:
=
true
]>
f
)
(
Q
∗
P
).
Proof
.
iIntros
(?)
"[HQ Hbox]"
.
iMod
(
box_insert_empty
with
"Hbox"
)
as
(
γ
)
"(% & #Hslice & Hbox)"
.
iExists
γ
.
iFrame
"%#"
.
iMod
(
box_fill
with
"[$Hslice $HQ $Hbox]"
).
done
.
by
apply
lookup_insert
.
by
rewrite
insert_insert
.
Qed
.
Lemma
box_delete_full
E
f
P
Q
γ
:
↑
N
⊆
E
→
f
!!
γ
=
Some
true
→
slice
N
γ
Q
∗
▷
box
N
f
P
={
E
}=
∗
▷
Q
∗
∃
P'
,
▷
▷
(
P
≡
(
Q
∗
P'
))
∗
▷
box
N
(
delete
γ
f
)
P'
.
Proof
.
iIntros
(??)
"[#Hslice Hbox]"
.
iMod
(
box_empty
with
"[$Hslice $Hbox]"
)
as
"[$ Hbox]"
;
try
done
.
iMod
(
box_delete_empty
with
"[$Hslice $Hbox]"
)
as
(
P'
)
"[Heq Hbox]"
.
done
.
by
apply
lookup_insert
.
iExists
P'
.
rewrite
delete_insert
.
iFrame
.
iMod
(
box_fill
with
"[$Hslice $HQ $Hbox]"
).
done
.
by
rewrite
insert_insert
.
Qed
.
Lemma
box_fill_all
E
f
P
:
↑
N
⊆
E
→
box
N
f
P
∗
▷
P
={
E
}=
∗
box
N
(
const
true
<$>
f
)
P
.
...
...
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