Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Simon Spies
Iris
Commits
ce3a01eb
Commit
ce3a01eb
authored
Feb 20, 2016
by
Ralf Jung
Browse files
avoid wp_bindi
parent
a3413622
Changes
2
Hide whitespace changes
Inline
Side-by-side
barrier/barrier.v
View file @
ce3a01eb
...
...
@@ -237,15 +237,17 @@ Section proof.
heapN
⊥
N
→
(
recv
l
P
★
(
P
-
★
Φ
'
()))
⊑
||
wait
(
LocV
l
)
{{
Φ
}}.
Proof
.
rename
P
into
R
.
intros
Hdisj
.
rewrite
/
wait
.
rewrite
[(
_
★
_
)%
I
](
pvs_intro
⊤
).
apply
l
ö
b_strong_sep
.
rewrite
pvs_frame_r
.
apply
wp_strip_pvs
.
intros
Hdisj
.
(* TODO we probably want a tactic or lemma that does the next 2 lines for us.
It should be general enough to also cover FindPred_spec. Probably this
should be the default behavior of wp_rec - since this is what we need every time
we prove a recursive function correct. *)
rewrite
/
wait
.
rewrite
[(
_
★
_
)%
I
](
pvs_intro
⊤
).
apply
l
ö
b_strong_sep
.
rewrite
pvs_frame_r
.
apply
wp_strip_pvs
.
wp_rec
.
rewrite
{
1
}/
recv
/
barrier_ctx
.
rewrite
!
sep_exist_r
.
apply
exist_elim
=>
γ
.
rewrite
!
sep_exist_r
.
apply
exist_elim
=>
P
.
rewrite
!
sep_exist_r
.
apply
exist_elim
=>
Q
.
rewrite
!
sep_exist_r
.
apply
exist_elim
=>
i
.
wp_rec
.
(* TODO use automatic binding *)
rewrite
-(
wp_bindi
(
IfCtx
_
_
))
/=.
rewrite
-(
wp_bindi
(
BinOpLCtx
_
_
))
/=.
apply
exist_elim
=>
i
.
wp_focus
(!
_
)%
L
.
(* I think some evars here are better than repeating *everything* *)
eapply
(
sts_fsaS
_
(
wp_fsa
_
))
with
(
N0
:
=
N
)
(
γ
0
:
=
γ
)
;
simpl
;
eauto
with
I
ndisj
.
...
...
heap_lang/lifting.v
View file @
ce3a01eb
...
...
@@ -19,11 +19,6 @@ Lemma wp_bind {E e} K Φ :
||
e
@
E
{{
λ
v
,
||
fill
K
(
of_val
v
)
@
E
{{
Φ
}}}}
⊑
||
fill
K
e
@
E
{{
Φ
}}.
Proof
.
apply
weakestpre
.
wp_bind
.
Qed
.
Lemma
wp_bindi
{
E
e
}
Ki
Φ
:
||
e
@
E
{{
λ
v
,
||
fill_item
Ki
(
of_val
v
)
@
E
{{
Φ
}}}}
⊑
||
fill_item
Ki
e
@
E
{{
Φ
}}.
Proof
.
apply
weakestpre
.
wp_bind
.
Qed
.
(** Base axioms for core primitives of the language: Stateful reductions. *)
Lemma
wp_alloc_pst
E
σ
e
v
Φ
:
to_val
e
=
Some
v
→
...
...
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