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
Rodolphe Lepigre
Iris
Commits
35308b0f
Commit
35308b0f
authored
Jun 18, 2018
by
Ralf Jung
Browse files
Sequential triples with a persistent precondition and no initial quantifier are atomic
parent
964f1cfe
Changes
1
Hide whitespace changes
Inline
Side-by-side
theories/program_logic/atomic.v
View file @
35308b0f
...
...
@@ -108,4 +108,18 @@ Section lemmas.
(* FIXME: Using ssreflect rewrite does not work? *)
rewrite
->!
tele_app_bind
.
iIntros
"HΦ"
.
iApply
"HΦ"
.
done
.
Qed
.
(* Sequential triples with a persistent precondition and no initial quantifier
are atomic. *)
Lemma
seq_wp_atomic
e
Eo
(
α
:
[
tele
]
→
iProp
)
(
β
:
[
tele
]
→
TB
→
iProp
)
(
f
:
[
tele
]
→
TB
→
val
Λ
)
{
HP
:
∀
..
x
,
Persistent
(
α
x
)}
:
(
∀
Φ
,
∀
..
x
,
α
x
-
∗
(
∀
..
y
,
β
x
y
-
∗
Φ
(
f
x
y
))
-
∗
WP
e
{{
Φ
}})
-
∗
atomic_wp
e
Eo
α
β
f
.
Proof
.
simpl
in
HP
.
iIntros
"Hwp"
(
Q
Φ
)
"HQ HΦ"
.
iApply
fupd_wp
.
iMod
(
"HΦ"
)
as
"[#Hα [Hclose _]]"
.
iMod
(
"Hclose"
with
"Hα"
)
as
"HΦ"
.
iApply
wp_fupd
.
iApply
(
"Hwp"
with
"Hα"
).
iIntros
"!>"
(
y
)
"Hβ"
.
iMod
(
"HΦ"
)
as
"[_ [_ Hclose]]"
.
iMod
(
"Hclose"
with
"Hβ"
)
as
"HΦ"
.
rewrite
->!
tele_app_bind
.
iApply
"HΦ"
.
done
.
Qed
.
End
lemmas
.
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