Skip to content

Commit e7efd23

Browse files
committed
adapt to rocq + remove many warnings
1 parent 4843a48 commit e7efd23

226 files changed

Lines changed: 769 additions & 775 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Coccinelle/ac_matching/ac.v

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
(**************************************************************************)
1111

1212

13-
From Coq Require Import Relations List Arith Morphisms.
13+
From Stdlib Require Import Relations List Arith Morphisms.
1414
From CoLoR Require Import more_list list_permut list_sort term_spec term_o equational_theory_spec equational_theory.
1515

1616
Set Implicit Arguments.
@@ -591,8 +591,8 @@ forall t, (match t with
591591
end) -> well_formed_cf t.
592592
Proof.
593593
intro t; destruct t as [v | f l]; trivial.
594-
intros [Wl Hl]; split; trivial; clear Hl;
595-
induction l as [ | t l]; intuition;
594+
intros [Wl Hl]; split; trivial; clear Hl;
595+
induction l as [ | t l]; intuition auto with *;
596596
apply IHl; intros; apply Wl; right; trivial.
597597
Qed.
598598

@@ -697,15 +697,15 @@ apply (f_equal (fun l => Term f l)); apply sort_is_unique; trivial.
697697
apply quick_sorted.
698698
apply permut_sym; apply quick_permut_bis;
699699
apply permut_sym; rewrite <- permut_cons_inside.
700-
rewrite <- app_nil_end; apply permut_refl.
700+
rewrite app_nil_r; apply permut_refl.
701701
reflexivity.
702702
generalize (F.Symb.eq_bool_ok f g1); case (F.Symb.eq_bool f g1); [intro f_eq_g1 | intro f_diff_g1].
703703
absurd (f=g1); trivial.
704704
apply (f_equal (fun l => Term f l)); apply sort_is_unique; trivial.
705705
apply quick_sorted.
706706
apply permut_sym; apply quick_permut_bis;
707707
apply permut_sym; rewrite <- permut_cons_inside.
708-
rewrite <- app_nil_end; apply permut_refl.
708+
rewrite app_nil_r; apply permut_refl.
709709
reflexivity.
710710
intros; apply Hrec; trivial; right; trivial.
711711
intros; apply Wl; right; trivial.
@@ -787,7 +787,7 @@ apply Nat.add_le_mono.
787787
assert (Wt : well_formed t). apply Wl; left; trivial.
788788
destruct t as [v | g ll]; simpl; auto with arith.
789789
generalize (F.Symb.eq_bool_ok f g); case (F.Symb.eq_bool f g); [intro f_eq_g | intro f_diff_g].
790-
subst g; rewrite <- app_nil_end; rewrite Af; rewrite length_quicksort;
790+
subst g; rewrite app_nil_r; rewrite Af; rewrite length_quicksort;
791791
apply Nat.le_trans with (length ll).
792792
elim (well_formed_unfold Wt); rewrite Af; intros _ Lll; rewrite Lll; auto with arith.
793793
apply IHn; trivial.
@@ -837,7 +837,7 @@ assert (Wt : well_formed_cf t). apply Wl; left; trivial.
837837
destruct t as [v | g h].
838838
elim In_u; clear In_u; intro In_u; subst; trivial; contradiction.
839839
revert In_u; generalize (F.Symb.eq_bool_ok f g); case (F.Symb.eq_bool f g); [intros f_eq_g In_u | intros f_diff_g In_u].
840-
rewrite <- app_nil_end in In_u; apply (well_formed_cf_subterms Wt); trivial.
840+
rewrite app_nil_r in In_u; apply (well_formed_cf_subterms Wt); trivial.
841841
elim In_u; clear In_u; intro In_u; subst; trivial; contradiction.
842842
apply IHl; trivial; intros; apply Wl; right; trivial.
843843
rewrite length_quicksort; rewrite <- L; unfold ge; apply length_flatten; trivial.
@@ -857,7 +857,7 @@ assert (Wt : well_formed_cf t). apply Wl; left; trivial.
857857
destruct t as [ v | g ll ].
858858
elim In_u; clear In_u; intro In_u; subst; trivial; contradiction.
859859
revert In_u; generalize (F.Symb.eq_bool_ok f g); case (F.Symb.eq_bool f g); [intros f_eq_g In_u | intros f_diff_g In_u].
860-
subst g; rewrite <- app_nil_end in In_u;
860+
subst g; rewrite app_nil_r in In_u;
861861
apply well_formed_cf_alien with ll; trivial.
862862
elim In_u; clear In_u; intro In_u; subst; trivial; contradiction.
863863
apply (IHm l); trivial.
@@ -884,14 +884,14 @@ intros f t1 t2 Af Wt1 Wt2; destruct t1 as [v1 | f1 l1]; destruct t2 as [v2 | f2
884884
simpl; intros; apply permut_length_1; trivial.
885885
(* t1 = Var v1; t2 = Term f2 l2 *)
886886
simpl; generalize (F.Symb.eq_bool_ok f f2); case (F.Symb.eq_bool f f2); [intros f_eq_f2; subst f2 | intros f_diff_f2].
887-
rewrite <- app_nil_end; intro P; absurd (2 <= 1); auto with arith.
887+
rewrite app_nil_r; intro P; absurd (2 <= 1); auto with arith.
888888
generalize (permut_length P); simpl;
889889
intro L; pattern 1 at 2; rewrite L; auto with arith;
890890
apply well_formed_cf_length with f; trivial.
891891
intro P; apply permut_length_1; trivial.
892892
(* t1 = Term f1 l1; t2 = Var v2 *)
893893
simpl; generalize (F.Symb.eq_bool_ok f f1); case (F.Symb.eq_bool f f1); [intros f_eq_f1; subst f1 | intros f_diff_f1].
894-
rewrite <- app_nil_end; intro P; absurd (2 <= 1); auto with arith.
894+
rewrite app_nil_r; intro P; absurd (2 <= 1); auto with arith.
895895
generalize (permut_length P); simpl;
896896
intro L; pattern 1 at 2; rewrite <- L; auto with arith;
897897
apply well_formed_cf_length with f; trivial.
@@ -901,16 +901,16 @@ simpl; generalize (F.Symb.eq_bool_ok f f1); case (F.Symb.eq_bool f f1); [intros
901901
(generalize (F.Symb.eq_bool_ok f f2); case (F.Symb.eq_bool f f2); [intros f_eq_f2 P; subst f2 | intros f_diff_f2 P]).
902902
(* f = f1; f = f2 *)
903903
apply (f_equal (fun l => Term f l));
904-
do 2 rewrite <- app_nil_end in P;
904+
do 2 rewrite app_nil_r in P;
905905
apply sort_is_unique; trivial; apply well_formed_cf_sorted with f; trivial.
906906
(* f = f1; f <> f2 *)
907907
absurd (2 <= 1); auto with arith.
908-
rewrite <- app_nil_end in P; generalize (permut_length P); simpl;
908+
rewrite app_nil_r in P; generalize (permut_length P); simpl;
909909
intro L; pattern 1 at 2; rewrite <- L; auto with arith;
910910
apply well_formed_cf_length with f; trivial.
911911
(* f <> f1; f = f2 *)
912912
absurd (2 <= 1); auto with arith.
913-
rewrite <- app_nil_end in P; generalize (permut_length P); simpl;
913+
rewrite app_nil_r in P; generalize (permut_length P); simpl;
914914
intro L; pattern 1 at 2; rewrite L; auto with arith;
915915
apply well_formed_cf_length with f; trivial.
916916
apply permut_length_1; trivial.
@@ -1003,7 +1003,7 @@ generalize (F.Symb.eq_bool_ok f g); case (F.Symb.eq_bool f g); [intros f_eq_g |
10031003
apply False_rect; apply Al_t1; assumption.
10041004
reflexivity.
10051005
simpl; generalize (F.Symb.eq_bool_ok f f); case (F.Symb.eq_bool f f); [intros _ | intro f_diff_f; apply False_rect; apply f_diff_f; reflexivity].
1006-
rewrite <- app_nil_end; apply quick_permut_bis; auto.
1006+
rewrite app_nil_r; apply quick_permut_bis; auto.
10071007
Qed.
10081008

10091009
Lemma flatten_build_cons :
@@ -1125,7 +1125,7 @@ rewrite Af; repeat rewrite quicksort_equation; simpl; auto.
11251125
destruct l as [ | t2 l]; auto.
11261126
simpl; rewrite Af;
11271127
generalize (F.Symb.eq_bool_ok f f); case (F.Symb.eq_bool f f); [intros _ | intro f_diff_f; apply False_rect; apply f_diff_f; reflexivity].
1128-
rewrite <- app_nil_end; apply permut_sym;
1128+
rewrite app_nil_r; apply permut_sym;
11291129
apply quick_permut_bis;
11301130
transitivity (flatten f (map (apply_cf_subst sigma) (t1 :: t2 :: l))); auto;
11311131
apply list_permut_flatten.
@@ -1171,7 +1171,7 @@ rewrite <- permut_app1; apply IHl.
11711171
rewrite <- permut_app2.
11721172
destruct t as [ v | g ll]; simpl; auto.
11731173
generalize (F.Symb.eq_bool_ok f g); case (F.Symb.eq_bool f g); [intros f_eq_g; subst g | intros f_diff_g].
1174-
rewrite Af; do 2 rewrite <- app_nil_end;
1174+
rewrite Af; do 2 rewrite app_nil_r;
11751175
apply permut_sym; apply quick_permut.
11761176
simpl; generalize (F.Symb.eq_bool_ok f g); case (F.Symb.eq_bool f g); [intros f_eq_g; subst g | intros _].
11771177
apply False_rect; apply f_diff_g; reflexivity.
@@ -1218,7 +1218,7 @@ apply well_formed_cf_apply_subst; trivial; apply Wl; left; trivial.
12181218
simpl map;
12191219
destruct (apply_cf_subst sigma t) as [ v | g ll ]; simpl; trivial;
12201220
simpl; generalize (F.Symb.eq_bool_ok f g); case (F.Symb.eq_bool f g); [intros f_eq_g; subst g | intros _]; trivial.
1221-
rewrite <- app_nil_end;
1221+
rewrite app_nil_r;
12221222
apply Nat.le_trans with 2; auto with arith;
12231223
apply well_formed_cf_length with f; trivial.
12241224
apply IHl; intros; apply Wl; right; trivial.
@@ -1254,7 +1254,7 @@ case (F.Symb.eq_bool f f1);
12541254
| apply P12 ].
12551255
reflexivity.
12561256
case (F.Symb.eq_bool f f1); case (F.Symb.eq_bool f f2).
1257-
do 2 rewrite <- app_nil_end; apply list_permut_app_app.
1257+
do 2 rewrite app_nil_r; apply list_permut_app_app.
12581258
apply permut_sym; rewrite <- permut_cons_inside; auto.
12591259
reflexivity.
12601260

@@ -1272,7 +1272,7 @@ apply quick_sorted.
12721272
apply quick_sorted.
12731273
do 2 (apply quick_permut_bis; apply permut_sym).
12741274
generalize (canonical_form t1) (canonical_form t2) (canonical_form t3);
1275-
clear t1 t2 t3; intros t1 t2 t3; rewrite <- app_nil_end.
1275+
clear t1 t2 t3; intros t1 t2 t3; rewrite app_nil_r.
12761276
transitivity ((flatten f (t1 :: t2 :: nil)) ++ (flatten f (t3 :: nil))).
12771277
rewrite <- permut_app2.
12781278
apply permut_sym; apply quick_permut.
@@ -1283,7 +1283,7 @@ simpl; rewrite <- permut_cons.
12831283
apply quick_permut.
12841284
reflexivity.
12851285
simpl; case (F.Symb.eq_bool f g1).
1286-
rewrite <- app_nil_end; rewrite <- permut_app1; apply quick_permut.
1286+
rewrite app_nil_r; rewrite <- permut_app1; apply quick_permut.
12871287
simpl; rewrite <- permut_cons.
12881288
apply quick_permut.
12891289
reflexivity.
@@ -1425,7 +1425,7 @@ apply well_formed_cf_is_well_formed_cf_conv; exists t; split; trivial.
14251425
generalize (canonical_form t) Wu; clear t Wt Wu; intros u Wu.
14261426
destruct u as [v | g l]; trivial; simpl.
14271427
simpl; generalize (F.Symb.eq_bool_ok f g); case (F.Symb.eq_bool f g); [intros f_eq_g; subst g | intros f_diff_g].
1428-
rewrite Af; rewrite <- app_nil_end;
1428+
rewrite Af; rewrite app_nil_r;
14291429
generalize (well_formed_cf_length Af Wu); intro Ll;
14301430
destruct (length l) as [ | n].
14311431
absurd (2 <= 0); auto with arith.
@@ -1488,7 +1488,7 @@ destruct (canonical_form t1) as [v1 | f1 ll1];
14881488
destruct (canonical_form t2) as [v2 | f2 ll2]; trivial.
14891489
simpl flatten;
14901490
generalize (F.Symb.eq_bool_ok f f2); case (F.Symb.eq_bool f f2); [intros f_eq_f2; subst f2 | intros f_diff_f2].
1491-
simpl; rewrite <- app_nil_end; simpl; rewrite Af.
1491+
simpl; rewrite app_nil_r; simpl; rewrite Af.
14921492
rewrite (list_size_fold ac_size); rewrite Nat.sub_0_r.
14931493
generalize (well_formed_cf_length Af W2).
14941494
intro Lll2; destruct (length ll2) as [ | n2].
@@ -1510,7 +1510,7 @@ replace (flatten f (Term f1 ll1 :: Term f2 ll2 :: nil)) with
15101510
rewrite length_app.
15111511
simpl; generalize (F.Symb.eq_bool_ok f f1); case (F.Symb.eq_bool f f1); [intros f_eq_f1; subst f1 | intros f_diff_f1];
15121512
(generalize (F.Symb.eq_bool_ok f f2); case (F.Symb.eq_bool f f2); [intros f_eq_f2; subst f2 | intros f_diff_f2]).
1513-
do 2 rewrite <- app_nil_end; rewrite Af;
1513+
do 2 rewrite app_nil_r; rewrite Af;
15141514
do 2 rewrite (list_size_fold ac_size); rewrite list_size_app.
15151515
unfold DOS.A in *; generalize (well_formed_cf_length Af W1);
15161516
intro Lll1; destruct (length ll1) as [ | n1].
@@ -1524,15 +1524,15 @@ do 2 rewrite <- Nat.add_assoc; apply (f_equal (fun n => S (n1 + n)));
15241524
rewrite Nat.add_comm; rewrite <- Nat.add_assoc;
15251525
apply (f_equal (fun n => n2 + n)); apply Nat.add_comm.
15261526

1527-
rewrite Af; rewrite <- app_nil_end; rewrite list_size_app; simpl;
1527+
rewrite Af; rewrite app_nil_r; rewrite list_size_app; simpl;
15281528
do 2 rewrite (list_size_fold ac_size); simpl; rewrite Nat.add_0_r;
15291529
rewrite (Nat.add_comm (length ll1) 1); simpl; rewrite Nat.sub_0_r;
15301530
unfold DOS.A in *; generalize (well_formed_cf_length Af W1);
15311531
intro Lll1; destruct (length ll1) as [ | n1].
15321532
absurd (2 <= 0); auto with arith.
15331533
simpl; rewrite Nat.sub_0_r; rewrite <- Nat.add_assoc; trivial.
15341534

1535-
rewrite Af; rewrite <- app_nil_end.
1535+
rewrite Af; rewrite app_nil_r.
15361536
do 2 rewrite (list_size_fold ac_size).
15371537
unfold DOS.A in *; generalize (well_formed_cf_length Af W2);
15381538
intro Lll2; destruct (length ll2) as [ | n2].

Coccinelle/ac_matching/cf_eq_ac.v

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
(**************************************************************************)
1111

1212

13-
From Coq Require Import Setoid Arith List Morphisms.
13+
From Stdlib Require Import Setoid Arith List Morphisms.
1414
From CoLoR Require Import closure more_list weaved_relation list_sort term_spec ac.
1515

1616
Set Implicit Arguments.
@@ -54,7 +54,7 @@ rewrite Nat.add_comm; intro; discriminate.
5454
intros g l IHl l1 l2 Wt; simpl.
5555
generalize (F.Symb.eq_bool_ok f g); case (F.Symb.eq_bool f g); [intro f_eq_g; subst g | intro f_diff_g]; intro P'.
5656
(* f=g *)
57-
subst; rewrite Af in P'; rewrite <- app_nil_end in P'.
57+
subst; rewrite Af in P'; rewrite app_nil_r in P'.
5858
assert (P : permut (flatten f (map canonical_form l)) (l1 ++ l2)).
5959
rewrite <- P'; apply quick_permut.
6060
clear P'; elim (well_formed_unfold Wt); rewrite Af; intros Wl Ll;
@@ -92,15 +92,15 @@ rewrite P4; rewrite <- P1; rewrite <- Q22;
9292
rewrite <- flatten_app;
9393
transitivity (flatten f ((canonical_form t1 :: nil) ++ canonical_form t22 :: nil)).
9494
simpl; generalize (F.Symb.eq_bool_ok f f); case (F.Symb.eq_bool f f); [intros _ | intro f_diff_f; apply False_rect; apply f_diff_f; reflexivity].
95-
rewrite Af; rewrite <- app_nil_end;
95+
rewrite Af; rewrite app_nil_r;
9696
apply quick_permut_bis; apply permut_refl.
9797
apply list_permut_flatten; apply list_permut_app_app.
98-
rewrite P3; rewrite <- app_nil_end; trivial.
98+
rewrite P3; rewrite app_nil_r; trivial.
9999
(* k1 = nil, k4 = nil *)
100100
right; right; exists t2; exists t1; subst; intuition.
101101
apply comm; right; trivial.
102-
rewrite P4; rewrite P2; rewrite <- app_nil_end; apply permut_refl.
103-
rewrite P1; rewrite P3; rewrite <- app_nil_end; apply permut_refl.
102+
rewrite P4; rewrite P2; rewrite app_nil_r; apply permut_refl.
103+
rewrite P1; rewrite P3; rewrite app_nil_r; apply permut_refl.
104104
(* k2 = nil, k4 = nil *)
105105
subst; left; apply list_permut.permut_nil with term (@eq term); trivial.
106106
(* k4 = nil; t2 is decomposed *)
@@ -112,13 +112,13 @@ refine (context_in _ t2 (Term f (t21 :: t22 :: nil)) _ f (t1 :: nil) nil); trivi
112112
apply trans_clos_is_trans with (Term f (Term f (t1 :: t21 :: nil) :: t22 :: nil)).
113113
apply r_assoc; trivial.
114114
apply comm; right; trivial.
115-
rewrite P4; rewrite <- Q22; rewrite <- app_nil_end; auto.
115+
rewrite P4; rewrite <- Q22; rewrite app_nil_r; auto.
116116
transitivity (flatten f ((canonical_form t1 :: nil) ++ canonical_form t21 :: nil)).
117117
simpl; generalize (F.Symb.eq_bool_ok f f); case (F.Symb.eq_bool f f); [intros _ | intro f_diff_f; apply False_rect; apply f_diff_f; reflexivity].
118-
rewrite Af; rewrite <- app_nil_end;
118+
rewrite Af; rewrite app_nil_r;
119119
apply quick_permut_bis; apply permut_refl.
120120
rewrite P3;
121-
rewrite <- app_nil_end in P1; rewrite <- P1;
121+
rewrite app_nil_r in P1; rewrite <- P1;
122122
rewrite <- Q21;
123123
rewrite flatten_app; apply list_permut_app_app.
124124
(* t1 is decomposed, k1 = nil *)
@@ -133,7 +133,7 @@ apply comm; right; trivial.
133133
rewrite P4; rewrite <- P2; rewrite <- Q12;
134134
transitivity (flatten f ((canonical_form t12 :: nil) ++ canonical_form t2 :: nil)).
135135
simpl; generalize (F.Symb.eq_bool_ok f f); case (F.Symb.eq_bool f f); [intros _ | intro f_diff_f; apply False_rect; apply f_diff_f; reflexivity].
136-
rewrite Af; rewrite <- app_nil_end;
136+
rewrite Af; rewrite app_nil_r;
137137
apply quick_permut_bis; apply permut_refl.
138138
rewrite flatten_app; apply list_permut_app_app.
139139
rewrite P3; trivial.
@@ -149,11 +149,11 @@ apply comm; right; trivial.
149149
apply l_assoc; trivial.
150150
rewrite P4; auto.
151151
rewrite P3;
152-
rewrite <- app_nil_end in P2; rewrite <- P2;
152+
rewrite app_nil_r in P2; rewrite <- P2;
153153
rewrite <- Q11;
154154
transitivity (flatten f ((canonical_form t11 :: nil) ++ canonical_form t2 :: nil)).
155155
simpl; generalize (F.Symb.eq_bool_ok f f); case (F.Symb.eq_bool f f); [intros _ | intro f_diff_f; apply False_rect; apply f_diff_f; reflexivity].
156-
rewrite Af; rewrite <- app_nil_end;
156+
rewrite Af; rewrite app_nil_r;
157157
apply quick_permut_bis; apply permut_refl.
158158
rewrite flatten_app; apply list_permut_app_app.
159159
(* t1 and t2 are decomposed *)
@@ -186,14 +186,14 @@ rewrite P4; rewrite <- Q12; rewrite <- Q22.
186186
transitivity (flatten f (canonical_form t12 :: nil) ++ flatten f (canonical_form t22 :: nil)).
187187
rewrite <- flatten_app;
188188
simpl; generalize (F.Symb.eq_bool_ok f f); case (F.Symb.eq_bool f f); [intros _ | intro f_diff_f; apply False_rect; apply f_diff_f; reflexivity].
189-
rewrite Af; rewrite <- app_nil_end;
189+
rewrite Af; rewrite app_nil_r;
190190
apply quick_permut_bis; apply permut_refl.
191191
apply list_permut_app_app.
192192
rewrite P3; rewrite <- Q11; rewrite <- Q21.
193193
transitivity (flatten f (canonical_form t11 :: nil) ++ flatten f (canonical_form t21 :: nil)).
194194
rewrite <- flatten_app;
195195
simpl; generalize (F.Symb.eq_bool_ok f f); case (F.Symb.eq_bool f f); [intros _ | intro f_diff_f; apply False_rect; apply f_diff_f; reflexivity].
196-
rewrite Af; rewrite <- app_nil_end;
196+
rewrite Af; rewrite app_nil_r;
197197
apply quick_permut_bis; apply permut_refl.
198198
apply list_permut_app_app.
199199
(* f <> g *)
@@ -303,7 +303,7 @@ apply th_sym; apply IH; trivial; apply flatten_cf_cf with f; trivial.
303303
rewrite P4; rewrite <- Q2; rewrite <- Q4.
304304
rewrite <- flatten_app; simpl;
305305
simpl; generalize (F.Symb.eq_bool_ok f f); case (F.Symb.eq_bool f f); [intros _ | intro f_diff_f; apply False_rect; apply f_diff_f; reflexivity].
306-
rewrite Af; rewrite <- app_nil_end; apply quick_permut.
306+
rewrite Af; rewrite app_nil_r; apply quick_permut.
307307
Qed.
308308

309309
Lemma swap_left :
@@ -356,7 +356,7 @@ apply IH; trivial; apply flatten_cf_cf with f; trivial.
356356
rewrite P4; rewrite <- Q2'; rewrite <- Q4;
357357
rewrite <- flatten_app; simpl;
358358
simpl; generalize (F.Symb.eq_bool_ok f f); case (F.Symb.eq_bool f f); [intros _ | intro f_diff_f; apply False_rect; apply f_diff_f; reflexivity].
359-
rewrite Af; rewrite <- app_nil_end; apply quick_permut.
359+
rewrite Af; rewrite app_nil_r; apply quick_permut.
360360
Qed.
361361

362362
Lemma swap_right :
@@ -407,7 +407,7 @@ apply IH; trivial; apply flatten_cf_cf with f; trivial.
407407
rewrite P3; rewrite <- Q1; rewrite <- Q3.
408408
rewrite <- flatten_app; simpl;
409409
simpl; generalize (F.Symb.eq_bool_ok f f); case (F.Symb.eq_bool f f); [intros _ | intro f_diff_f; apply False_rect; apply f_diff_f; reflexivity].
410-
rewrite Af; rewrite <- app_nil_end; apply quick_permut.
410+
rewrite Af; rewrite app_nil_r; apply quick_permut.
411411
refine (context_in _ _ _ _ f (_ :: nil) nil).
412412
apply IH; trivial; apply flatten_cf_cf with f; trivial.
413413
rewrite P4; rewrite Q2; auto.
@@ -467,7 +467,7 @@ apply IH; trivial; apply flatten_cf_cf with f; trivial;
467467
rewrite P3; rewrite <- Q1; rewrite <- Q3.
468468
rewrite <- flatten_app; simpl;
469469
simpl; generalize (F.Symb.eq_bool_ok f f); case (F.Symb.eq_bool f f); [intros _ | intro f_diff_f; apply False_rect; apply f_diff_f; reflexivity].
470-
rewrite Af; rewrite <- app_nil_end; apply quick_permut.
470+
rewrite Af; rewrite app_nil_r; apply quick_permut.
471471
refine (context_in _ _ _ _ f (_ :: nil) nil).
472472
assert (Wt24 : well_formed (Term f (t2 :: t4 :: nil))).
473473
apply well_formed_fold; rewrite Af; split; trivial;
@@ -476,7 +476,7 @@ apply IH; trivial; apply flatten_cf_cf with f; trivial;
476476
rewrite P4; rewrite <- Q2; rewrite <- Q4.
477477
rewrite <- flatten_app; simpl;
478478
generalize (F.Symb.eq_bool_ok f f); case (F.Symb.eq_bool f f); [intros _ | intro f_diff_f; apply False_rect; apply f_diff_f; reflexivity].
479-
rewrite Af; rewrite <- app_nil_end; apply quick_permut.
479+
rewrite Af; rewrite app_nil_r; apply quick_permut.
480480
Qed.
481481

482482
Global Instance length_morph : Proper (permut ==> eq) (length (A:=term)).
@@ -528,7 +528,7 @@ intros k1 [k2 [k3 [k4 [P1 [P2 [P3 P4]]]]]].
528528
destruct k1 as [ | h1 k1]; destruct k4 as [ | h4 k4].
529529
(* commutativity *)
530530
apply commutativity with n k2 k3; trivial;
531-
[rewrite <- app_nil_end in P2 | rewrite <- app_nil_end in P4]; trivial.
531+
[rewrite app_nil_r in P2 | rewrite app_nil_r in P4]; trivial.
532532
(* swap_left *)
533533
generalize (swap_left IHn Af Sa1 Wa1 Sa2 Wa2 Sa3 Wa3 Sa4 Wa4
534534
k2 k3 (h4 :: k4));
@@ -552,7 +552,7 @@ absurd (1 <= 0); auto with arith.
552552
(* absurd a2=0 *)
553553
generalize (size_size_aux3 Af Wa2); rewrite P2; intro;
554554
absurd (1 <= 0); auto with arith.
555-
rewrite <- app_nil_end in P2; rewrite <- app_nil_end in P4;
555+
rewrite app_nil_r in P2; rewrite app_nil_r in P4;
556556
apply H'; trivial.
557557
destruct k2 as [ | h2 k2]; destruct k3 as [ | h3 k3].
558558
(* syntactic decomposition *)
@@ -564,14 +564,14 @@ intros [Hk1 | [Hk3 | [Hk4 | H']]]; subst.
564564
discriminate.
565565
discriminate.
566566
discriminate.
567-
rewrite <- app_nil_end in P1; unfold ac; apply th_sym; apply H'; trivial.
567+
rewrite app_nil_r in P1; unfold ac; apply th_sym; apply H'; trivial.
568568
(* associativity *)
569569
generalize (associativity IHn Af Sa1 Wa1 Sa2 Wa2 Sa3 Wa3 Sa4 Wa4 (h1::k1) (h2 :: k2) (h4::k4)).
570570
intros [Hk1 | [Hk2 | [Hk4 | H']]]; subst.
571571
discriminate.
572572
discriminate.
573573
discriminate.
574-
rewrite <- app_nil_end in P3; unfold ac; apply H'; trivial.
574+
rewrite app_nil_r in P3; unfold ac; apply H'; trivial.
575575
(* middle commutativity *)
576576
generalize (middle_commutativity IHn Af Sa1 Wa1 Sa2 Wa2 Sa3 Wa3 Sa4 Wa4
577577
(h1 :: k1) (h2 :: k2) (h3 :: k3) (h4 :: k4));

Coccinelle/ac_matching/matching.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
(**************************************************************************)
1111

1212

13-
From Coq Require Import Arith List.
13+
From Stdlib Require Import Arith List.
1414
From CoLoR Require Import more_list list_sort term_spec ac cf_eq_ac.
1515

1616
Module Type S.

0 commit comments

Comments
 (0)