@@ -108,7 +108,7 @@ Hypothesis WATF2: W ∩₁ AT ⊆₁ dom_rel (immediate sb ⨾ ⦗F ∩₁ Sc⦘
108108
109109Lemma mode_split (S: actid -> Prop) (HASLOC: forall x, S x -> exists l, loc x = Some l):
110110 S ≡₁ (S ∩₁ NA) ∪₁ (S ∩₁ AT).
111- Proof using .
111+ Proof using LOCMODE .
112112 red. split; [| basic_solver].
113113 rewrite <- set_inter_union_r.
114114 apply set_subset_inter_r. split; [basic_solver| ].
121121
122122Lemma sb_f_helper T M (TF: T ⊆₁ codom_rel (⦗F ∩₁ M⦘ ⨾ immediate sb)):
123123 ⦗RW⦘ ⨾ sb ⨾ ⦗T⦘ ⊆ ⦗RW⦘ ⨾ sb ⨾ ⦗F ∩₁ M⦘ ⨾ sb ⨾ ⦗T⦘.
124- Proof using .
124+ Proof using WNAF WF WATF2 WATF1 RWMODE RATF2 RATF1 NA AT .
125125 unfolder. intros e a H. destruct H as [RWe [SBew Ta]]. split; auto.
126126 red in TF. specialize (@TF a).
127127 pose proof (TF Ta) as [f HH].
141141
142142Lemma sb_f_w:
143143 ⦗RW⦘ ⨾ sb ⨾ ⦗W⦘ ⊆ ⦗RW⦘ ⨾ sb ⨾ ⦗F ∩₁ Sc⦘ ⨾ sb ⨾ ⦗W ∩₁ AT⦘ ∪ ⦗RW⦘ ⨾ sb ⨾ ⦗F ∩₁ Acqrel⦘ ⨾ sb ⨾ ⦗W ∩₁ NA⦘.
144- Proof using .
144+ Proof using All .
145145 assert (FENCE: forall MW MF (COMP: W ∩₁ MW
146146 ⊆₁ codom_rel (⦗F ∩₁ MF⦘ ⨾ immediate sb) ∪₁ Init),
147147 ⦗RW⦘ ⨾ sb ⨾ ⦗W ∩₁ MW⦘ ⊆ ⦗RW⦘ ⨾ sb ⨾ ⦗F ∩₁ MF⦘ ⨾ sb ⨾ ⦗W ∩₁ MW⦘).
@@ -160,7 +160,7 @@ Proof using.
160160Qed .
161161
162162Lemma sb_rf_acyclic: acyclic (sb ⨾ rfe).
163- Proof using .
163+ Proof using All .
164164 rewrite ((wf_rfeD WF)). arewrite (R ⊆₁ RW).
165165 rewrite <- !seqA, acyclic_rotl, !seqA.
166166 sin_rewrite sb_f_w.
@@ -172,18 +172,20 @@ Proof using.
172172 sin_rewrite sb_to_f_in_bob. sin_rewrite sb_from_f_in_bob. basic_solver. }
173173 do 2 sin_rewrite FBOB.
174174 rewrite !inclusion_seq_eqv_r, !inclusion_seq_eqv_l.
175- arewrite (rfe ⊆ ar). arewrite (bob ⊆ ar).
175+ arewrite (rfe ⊆ ar).
176+ arewrite (bob ⊆ ar).
177+ { unfold ar, ar_int. eauto with hahn. }
176178 rewrite unionK, seqA.
177179 red.
178180 red in Cext0.
179181 arewrite (ar ⨾ ar ⨾ ar ⊆ ar^+).
180- { do 2 rewrite <- ct_unit. rewrite seqA. basic_solver 10 . }
182+ { do 2 rewrite <- ct_unit. rewrite seqA. now rewrite <- ct_step . }
181183 rewrite ct_of_ct. auto.
182184Qed .
183185
184186
185187Lemma sb_rfe_crt_hb: (⦗RW⦘ ⨾ sb ⨾ rfe)^* ⨾ sb ⨾ ⦗F ∩₁ Sc⦘ ⊆ hb.
186- Proof using .
188+ Proof using All .
187189 rewrite (dom_l (wf_rfeD WF)).
188190 sin_rewrite sb_f_w.
189191 arewrite (F ∩₁ Sc ⊆₁ F ∩₁ Acqrel) by mode_solver.
218220
219221Lemma sl_mode r (SL: r ⊆ same_loc):
220222 ⦗RW⦘ ⨾ r ⨾ ⦗RW⦘ ⊆ restr_rel NA r ∪ restr_rel AT r.
221- Proof using .
223+ Proof using All .
222224 unfolder. ins. destruct H as [RWx [RELxy RWy]].
223225 assert (exists l, Loc_ l x) as [l Lx].
224226 { unfold Events.loc. unfold is_f in *.
@@ -233,7 +235,7 @@ Proof using.
233235Qed .
234236
235237Lemma sb_f_at: RW ∩₁ AT ∩₁ NInit ⊆₁ codom_rel (⦗F ∩₁ Sc⦘ ⨾ immediate sb).
236- Proof using .
238+ Proof using All .
237239 do 2 rewrite set_inter_union_l.
238240 apply set_subset_union_l.
239241 split.
244246
245247
246248Lemma f_sb_at: RW ∩₁ AT ∩₁ NInit ⊆₁ dom_rel (immediate sb ⨾ ⦗F ∩₁ Sc⦘).
247- Proof using .
249+ Proof using All .
248250 do 2 rewrite set_inter_union_l.
249251 apply set_subset_union_l.
250252 split.
256258
257259Lemma ct_dom_start: forall (A: Type) (r: relation A) (dom: A -> Prop),
258260 ⦗dom⦘ ⨾ (r ⨾ ⦗dom⦘)^+ ≡ (⦗dom⦘ ⨾ r ⨾ ⦗dom⦘)^+.
259- Proof using .
261+ Proof using All .
260262 intros A r dom.
261263 rewrite ct_rotl.
262264 rewrite <- (seqA ⦗dom⦘ r ⦗dom⦘). rewrite ct_rotl.
@@ -266,20 +268,20 @@ Proof using.
266268Qed .
267269
268270Lemma acyclic_empty: forall (A: Type), @acyclic A ∅₂.
269- Proof using .
271+ Proof using All .
270272 intros A. red.
271273 rewrite ct_of_trans; [| basic_solver].
272274 basic_solver.
273275Qed .
274276
275277Lemma sb_eco_sb_psc: ⦗F ∩₁ Sc⦘ ⨾ sb ⨾ eco ⨾ sb ⨾ ⦗F ∩₁ Sc⦘ ⊆ psc G.
276- Proof using . unfold psc. rewrite sb_in_hb. basic_solver 10. Qed .
278+ Proof using All . unfold psc. rewrite sb_in_hb. basic_solver 10. Qed .
277279
278280Lemma RFE1: rfe^+ ≡ rfe.
279- Proof using . apply ct_no_step. rewrite (wf_rfeD WF). type_solver. Qed .
281+ Proof using All . apply ct_no_step. rewrite (wf_rfeD WF). type_solver. Qed .
280282
281283Lemma no_eco_to_init: eco ≡ eco ⨾ ⦗NInit⦘.
282- Proof using .
284+ Proof using All .
283285 split; [| basic_solver].
284286 arewrite (eco ≡ eco ⨾ ⦗codom_rel eco⦘) at 1 by basic_solver.
285287 apply seq_mori; [basic_solver|].
@@ -293,8 +295,8 @@ Proof using.
293295Qed .
294296
295297Lemma acyclic_sb_rf_eco: acyclic (sb ∪ restr_rel NA rf ∪ restr_rel AT eco).
296- Proof using .
297- rewrite rfi_union_rfe, <- union_restr , <- unionA.
298+ Proof using All .
299+ rewrite rfi_union_rfe, restr_union , <- unionA.
298300 arewrite (restr_rel NA rfi ⊆ sb). rewrite unionK.
299301 assert (na_at_rels_empty: restr_rel NA rfe ⨾ restr_rel AT eco ≡ ∅₂).
300302 { generalize DIFMODE. basic_solver. }
@@ -386,14 +388,14 @@ Qed.
386388
387389Lemma imm_to_ocaml_causal:
388390 acyclic (sb ∪ rfe ∪ restr_rel AT (coe ∪ fre G)).
389- Proof using .
391+ Proof using All .
390392 arewrite (rfe ⊆ rf).
391393 arewrite (rf ⊆ restr_rel NA rf ∪ restr_rel AT rf).
392394 { rewrite (wf_rfD WF) at 1. arewrite (R ⊆₁ RW). arewrite (W ⊆₁ RW) at 1.
393395 rewrite sl_mode; [basic_solver | apply (wf_rfl WF)]. }
394396
395397 do 2 rewrite unionA.
396- rewrite union_restr .
398+ rewrite <- restr_union .
397399 arewrite ((rf ∪ (coe ∪ fre G)) ⊆ eco).
398400 { unfold Execution_eco.eco, Execution.rf, Execution.coe, Execution.fre. basic_solver 10. }
399401 rewrite <- unionA. apply acyclic_sb_rf_eco.
403405Lemma f_sb_helper T M (TF: T ⊆₁ dom_rel (immediate sb ⨾ ⦗F ∩₁ M⦘))
404406 (NIT: T ∩₁ is_init ≡₁ ∅):
405407 ⦗T⦘ ⨾ sb ⨾ ⦗RW⦘ ⊆ ⦗T⦘ ⨾ sb ⨾ ⦗F ∩₁ M⦘ ⨾ sb ⨾ ⦗RW⦘.
406- Proof using .
408+ Proof using All .
407409 unfolder. intros a e [Ta [SBae RWe]]. split; auto.
408410 red in TF. specialize (@TF a).
409411 pose proof (TF Ta) as [f HH].
@@ -423,13 +425,13 @@ Proof using.
423425Qed .
424426
425427Lemma ac_irr: forall A (r: relation A), acyclic r <-> irreflexive r^+.
426- Proof using . intros A r. basic_solver. Qed .
428+ Proof using All . intros A r. basic_solver. Qed .
427429
428430Definition ae := (⦗AT⦘ ⨾ (rfe ∪ co) ⨾ ⦗AT⦘).
429431
430432
431433Lemma imm_to_ocaml_coherent: irreflexive ((sb ∪ ae)^+ ⨾ (co ∪ fr)).
432- Proof using .
434+ Proof using All .
433435 arewrite (co ∪ fr ⊆ eco) by unfold Execution_eco.eco; basic_solver 10.
434436 rewrite ct_unionE.
435437 assert (ae_in_eco: ae ⊆ eco).
534536
535537Theorem ldrf_condition_ext:
536538 acyclic(sb ∪ rf ∪ ⦗F ∩₁ Sc⦘ ⨾ sb ⨾ eco ⨾ sb ⨾ ⦗F ∩₁ Sc⦘).
537- Proof using .
539+ Proof using All .
538540 apply acyclic_union1.
539541 { rewrite (wf_rfD WF). arewrite (W ⊆₁ RW). arewrite (R ⊆₁ RW) at 2 .
540542 rewrite (sl_mode); [| apply (wf_rfl WF)].
@@ -585,7 +587,7 @@ Proof using.
585587Qed .
586588
587589Theorem ldrf_condition: acyclic(sb ∪ rf ∪ ⦗AT⦘ ⨾ sb ⨾ eco ⨾ sb ⨾ ⦗AT⦘).
588- Proof using .
590+ Proof using All .
589591 arewrite (sb ∪ rf ∪ ⦗AT⦘ ⨾ sb ⨾ eco ⨾ sb ⨾ ⦗AT⦘ ⊆ (sb ∪ rf ∪ ⦗AT⦘ ⨾ sb ⨾ eco ⨾ sb ⨾ ⦗AT⦘) ⨾ ⦗NInit⦘).
590592 { rewrite (no_sb_to_init G) at 1. rewrite (no_sb_to_init G) at 3.
591593 rewrite (no_rf_to_init WF) at 1.
0 commit comments