Skip to content
Snippets Groups Projects
Commit 6cd508b1 authored by Ralf Jung's avatar Ralf Jung
Browse files

now that we have sealing, ecancel works even in barrier.v

parent 4ed33744
No related branches found
No related tags found
No related merge requests found
...@@ -284,7 +284,8 @@ Section proof. ...@@ -284,7 +284,8 @@ Section proof.
rewrite /recv /send. rewrite -(exist_intro γ) -(exist_intro P). rewrite /recv /send. rewrite -(exist_intro γ) -(exist_intro P).
rewrite -(exist_intro P) -(exist_intro i) -(exist_intro γ). rewrite -(exist_intro P) -(exist_intro i) -(exist_intro γ).
(* This is even more annoying than usually, since rewrite sometimes unfolds stuff... *) (* This is even more annoying than usually, since rewrite sometimes unfolds stuff... *)
rewrite [barrier_ctx _ _ _]lock !assoc [(_ locked _)%I]comm !assoc -lock. rewrite [barrier_ctx _ _ _]lock !assoc
[(_ locked (barrier_ctx _ _ _))%I]comm !assoc -lock.
rewrite -always_sep_dup. rewrite -always_sep_dup.
(* TODO: This is cancelling below a pvs. *) (* TODO: This is cancelling below a pvs. *)
rewrite [barrier_ctx _ _ _]lock always_and_sep_l -!assoc assoc -lock. rewrite [barrier_ctx _ _ _]lock always_and_sep_l -!assoc assoc -lock.
...@@ -418,8 +419,8 @@ Section proof. ...@@ -418,8 +419,8 @@ Section proof.
rewrite -(waiting_split _ _ _ Q R1 R2); [|done..]. rewrite -(waiting_split _ _ _ Q R1 R2); [|done..].
rewrite {1}[saved_prop_own i1 _]always_sep_dup. rewrite {1}[saved_prop_own i1 _]always_sep_dup.
rewrite {1}[saved_prop_own i2 _]always_sep_dup. rewrite {1}[saved_prop_own i2 _]always_sep_dup.
cancel [saved_prop_own i1 R1; saved_prop_own i2 R2; l '0; ecancel [l _; saved_prop_own i1 _; saved_prop_own i2 _; waiting _ _;
waiting P I; Q -★ R1 R2; saved_prop_own i Q]%I. _ -★ _; saved_prop_own i _]%I.
apply wand_intro_l. rewrite !assoc. eapply pvs_wand_r. rewrite /recv. apply wand_intro_l. rewrite !assoc. eapply pvs_wand_r. rewrite /recv.
rewrite -(exist_intro γ) -(exist_intro P) -(exist_intro R1) -(exist_intro i1). rewrite -(exist_intro γ) -(exist_intro P) -(exist_intro R1) -(exist_intro i1).
rewrite -(exist_intro γ) -(exist_intro P) -(exist_intro R2) -(exist_intro i2). rewrite -(exist_intro γ) -(exist_intro P) -(exist_intro R2) -(exist_intro i2).
...@@ -446,8 +447,8 @@ Section proof. ...@@ -446,8 +447,8 @@ Section proof.
rewrite -(ress_split _ _ _ Q R1 R2); [|done..]. rewrite -(ress_split _ _ _ Q R1 R2); [|done..].
rewrite {1}[saved_prop_own i1 _]always_sep_dup. rewrite {1}[saved_prop_own i1 _]always_sep_dup.
rewrite {1}[saved_prop_own i2 _]always_sep_dup. rewrite {1}[saved_prop_own i2 _]always_sep_dup.
cancel [saved_prop_own i1 R1; saved_prop_own i2 R2; l '1; ecancel [l _; saved_prop_own i1 _; saved_prop_own i2 _; ress _;
Q -★ R1 R2; saved_prop_own i Q; ress I]%I. _ -★ _; saved_prop_own i _]%I.
apply wand_intro_l. rewrite !assoc. eapply pvs_wand_r. rewrite /recv. apply wand_intro_l. rewrite !assoc. eapply pvs_wand_r. rewrite /recv.
rewrite -(exist_intro γ) -(exist_intro P) -(exist_intro R1) -(exist_intro i1). rewrite -(exist_intro γ) -(exist_intro P) -(exist_intro R1) -(exist_intro i1).
rewrite -(exist_intro γ) -(exist_intro P) -(exist_intro R2) -(exist_intro i2). rewrite -(exist_intro γ) -(exist_intro P) -(exist_intro R2) -(exist_intro i2).
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment