@@ -4,14 +4,12 @@ From mathcomp
44Require Import path.
55Require Import Eqdep.
66Require Import Relation_Operators.
7- From DiSeL.Heaps
8- Require Import pred prelude idynamic ordtype finmap pcm unionmap heap coding .
9- From DiSeL.Core
7+ From fcsl
8+ Require Import axioms pred prelude ordtype finmap pcm unionmap heap.
9+ From DiSeL
1010Require Import Freshness State EqTypeX DepMaps Protocols Worlds NetworkSem Rely.
11- From DiSeL.Core
12- Require Import Actions Injection Process.
13- From DiSeL.Core
14- Require InductiveInv.
11+ From DiSeL
12+ Require Import Actions Injection Process InductiveInv.
1513
1614Set Implicit Arguments .
1715Unset Strict Implicit .
@@ -27,7 +25,7 @@ Variable W : world.
2725
2826Notation coherent := (Coh W).
2927
30- Implicit Arguments proc [W this].
28+ Arguments proc [this W].
3129
3230Fixpoint always_sc A (s1 : state) p scs (P : state -> proc A -> Prop ) : Prop :=
3331 s1 \In coherent /\
@@ -152,7 +150,7 @@ Proof.
152150move=>C H [|sc scs]; split=>// s2; case/H=>// H1[H2]H3//.
153151split=>//; first by case: sc.
154152move=>s3 q /stepAct [v][pf][_ -> St].
155- rewrite (proof_irrelevance H1 pf) in H3.
153+ rewrite (pf_irr H1 pf) in H3.
156154apply: alw_ret'; last by move=>s4; apply: H3 St.
157155by case: (step_coh (a_step_sem St)).
158156Qed .
@@ -207,7 +205,7 @@ move=>Ls; split.
207205by move=>H ps; apply/(alwA' _ (Ls ps))=>x; apply: H.
208206Qed .
209207
210- Implicit Arguments alwA [A B s p P].
208+ Arguments alwA [A B s p P].
211209
212210(* always commutes with implication, so we can weaken the postconditions *)
213211
@@ -240,7 +238,7 @@ move=>Ls; split; first by move=>H Hp scs; apply/alwI': Hp.
240238by move=>H scs; apply/alwI'=>//; move/H; move/(_ scs).
241239Qed .
242240
243- Implicit Arguments alwI [A s p P Q].
241+ Arguments alwI [A s p P Q].
244242
245243
246244Lemma alw_bnd A B (p1 : proc A) (p12 : proc B) pp2 s1
@@ -336,8 +334,8 @@ split; apply: alw_imp=>t q _ I.
336334by move=>v; move/I.
337335Qed .
338336
339- Implicit Arguments aftA [A B s p P].
340- Implicit Arguments aftI [A s p P Q].
337+ Arguments aftA [A B s p P].
338+ Arguments aftI [A s p P Q].
341339
342340End Always.
343341
@@ -364,8 +362,8 @@ case: (sem_split w C1 C2 N); case=>R E; [subst s2'|subst s2];
364362split=>//; apply: Idle; split=>//.
365363case: (step_coh N)=>C _.
366364case/(cohE w): (C)=>s3[s4][E]C' C''.
367- move: (coh_prec (cohS C) E C1 C')=>Z; subst s3.
368- by rewrite (joinfK (cohS C) E).
365+ move: (coh_prec (cohS C) C1 C' E )=>Z; subst s3.
366+ by rewrite (joinxK (cohS C) E).
369367Qed .
370368
371369Lemma rely_split s1 s1' s2 s2' :
@@ -382,12 +380,12 @@ elim: n s1 s1' E C1 C2=>[|n IH] /= s1 s1'; last first.
382380 + by case: G1=>m R; exists m.+1, z, s4.
383381 by case: G2=>m R; exists m.+1, z, s5.
384382move=> [E1 E2] C1 C2.
385- move: (coh_prec (cohS E2) E1 C1 C2)=>Z; subst s2.
386- rewrite (joinfK (cohS E2) E1); split; exists 0=>//.
387- split=>//; rewrite -(joinfK (cohS E2) E1)=>{E1 s2' C2}.
383+ move: (coh_prec (cohS E2) C1 C2 E1 )=>Z; subst s2.
384+ rewrite (joinxK (cohS E2) E1); split; exists 0=>//.
385+ split=>//; rewrite -(joinxK (cohS E2) E1)=>{E1 s2' C2}.
388386move/(cohE w): (E2)=>[t1][t2][E]C' C''.
389- move: ((coh_prec (cohS E2)) E C1 C')=>Z; subst t1.
390- by rewrite (joinfK (cohS E2) E).
387+ move: ((coh_prec (cohS E2)) C1 C' E )=>Z; subst t1.
388+ by rewrite (joinxK (cohS E2) E).
391389Qed .
392390
393391
@@ -423,13 +421,13 @@ case=>sc' [q'][x1][i2][y1][_ -> E -> {sc q s}] _ T Ls.
423421
424422have [E1 E2] : x1 = i1 /\ y1 = j1.
425423- case: T=>Cx1 _.
426- move: (coh_prec (cohS C) E Ci1 Cx1) (E)=><-{E Cx1 x1}.
427- by move/(joinfK (cohS C)).
424+ move: (coh_prec (cohS C) Ci1 Cx1 E ) (E)=><-{E Cx1 x1}.
425+ by move/(joinxK (cohS C)).
428426rewrite {E x1}E1 {y1}E2 in T *.
429427have C' : i2 \+ j1 \In Coh W.
430428- move: (C)=>C'; rewrite (cohE w) in C *=>[[s1]][s2][E]D1 D2.
431- move: (coh_prec (cohS C') E Ci1 D1)=>Z; subst i1.
432- move: (joinfK (cohS C') E)=>Z; subst s2; clear E.
429+ move: (coh_prec (cohS C') Ci1 D1 E )=>Z; subst i1.
430+ move: (joinxK (cohS C') E)=>Z; subst s2; clear E.
433431 apply/(cohE w); exists i2, j1; split=>//.
434432 by case/step_coh: (pstep_network_sem T).
435433move/(alw_step Ls): T=>{Ls} Ls.
0 commit comments