Commit 0b7e25c2 authored by Ralf Jung's avatar Ralf Jung

make auth_closing less stupid

parent 05b7229d
...@@ -147,8 +147,12 @@ Proof. done. Qed. ...@@ -147,8 +147,12 @@ Proof. done. Qed.
Lemma auth_both_op a b : Auth (Excl a) b a b. Lemma auth_both_op a b : Auth (Excl a) b a b.
Proof. by rewrite /op /auth_op /= left_id. Qed. Proof. by rewrite /op /auth_op /= left_id. Qed.
(* FIXME tentative name. Or maybe remove this notion entirely. *)
Definition auth_step a a' b b' :=
n af, {n} a a {n} a' af b {n} b' af {n} b.
Lemma auth_update a a' b b' : Lemma auth_update a a' b b' :
( n af, {n} a a {n} a' af b {n} b' af {n} b) auth_step a a' b b'
a a' ~~> b b'. a a' ~~> b b'.
Proof. Proof.
move=> Hab [[?| |] bf1] n // =>-[[bf2 Ha] ?]; do 2 red; simpl in *. move=> Hab [[?| |] bf1] n // =>-[[bf2 Ha] ?]; do 2 red; simpl in *.
......
...@@ -58,14 +58,8 @@ Section auth. ...@@ -58,14 +58,8 @@ Section auth.
by rewrite sep_elim_l. by rewrite sep_elim_l.
Qed. Qed.
(* TODO: This notion should probably be defined in algebra/,
with instances proven for the important constructions. *)
Definition auth_step a b :=
( n a' af, {n} (a a') a a' {n} af a
b a' {n} b af {n} (b a')).
Lemma auth_closing a a' b γ : Lemma auth_closing a a' b γ :
auth_step a b auth_step (a a') a (b a') b
(φ (b a') own AuthI γ ( (a a') a)) (φ (b a') own AuthI γ ( (a a') a))
pvs N N (auth_inv γ auth_own γ b). pvs N N (auth_inv γ auth_own γ b).
Proof. Proof.
...@@ -73,8 +67,7 @@ Section auth. ...@@ -73,8 +67,7 @@ Section auth.
rewrite [(_ φ _)%I]commutative -associative. rewrite [(_ φ _)%I]commutative -associative.
rewrite -pvs_frame_l. apply sep_mono; first done. rewrite -pvs_frame_l. apply sep_mono; first done.
rewrite -own_op. apply own_update. rewrite -own_op. apply own_update.
apply auth_update=>n af Ha Heq. apply Hstep; first done. by apply auth_update.
by rewrite [af _]commutative.
Qed. Qed.
End auth. End auth.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment