Skip to content

Commit b931106

Browse files
authored
Merge pull request #121 from proux01/reworder
Port to new rewrite goals order
2 parents e4e35b9 + e8c90b3 commit b931106

5 files changed

Lines changed: 170 additions & 169 deletions

File tree

src/freeg.v

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ From HB Require Import structures.
2727
From mathcomp Require Import ssreflect ssrfun ssrbool eqtype ssrnat seq choice.
2828
From mathcomp Require Import fintype bigop order generic_quotient.
2929
From mathcomp Require Import ssralg ssrnum ssrint.
30-
Set SsrOldRewriteGoalsOrder. (* change Set to Unset when porting the file, then remove the line when requiring MathComp >= 2.6 *)
30+
Unset SsrOldRewriteGoalsOrder. (* remove the line when requiring MathComp >= 2.6 *)
3131

3232
Import Order.Theory GRing.Theory Num.Theory.
3333

@@ -331,8 +331,8 @@ Section FreegTheory.
331331
Lemma precoeffE x : precoeff x =1 prelift (fun y => (y == x)%:R : R^o).
332332
Proof.
333333
move=> s; rewrite [RHS](bigID [pred kx | kx.2 == x]) /= addrC big1.
334-
by rewrite add0r; apply: eq_bigr => i /eqP ->; rewrite eqxx [_ *: _]mulr1.
335-
by move=> i /negbTE ->; rewrite scaler0.
334+
by move=> i /negbTE ->; rewrite scaler0.
335+
by rewrite add0r; apply: eq_bigr => i /eqP ->; rewrite eqxx [_ *: _]mulr1.
336336
Qed.
337337

338338
Lemma precoeff_nil x : precoeff x [::] = 0.
@@ -442,7 +442,7 @@ Section FreegTheory.
442442
uniq (predom s) -> kz \in s -> precoeff kz.2 s = kz.1.
443443
Proof.
444444
move=> uniq_dom_s kz_in_s; have uniq_s := map_uniq uniq_dom_s.
445-
rewrite precoeff_uniqE // (nth_map kz); last first.
445+
rewrite precoeff_uniqE // (nth_map kz).
446446
by rewrite -(size_map (@snd _ _)) index_mem map_f.
447447
rewrite nth_index_map // => {kz kz_in_s} kz1 kz2 kz1_in_s kz2_in_s eq.
448448
apply/eqP.
@@ -460,7 +460,7 @@ Section FreegTheory.
460460
case/andP: rD => uniqD /allP /= rD; rewrite precoeff_uniqE //.
461461
apply/idP/idP; last apply: contra_neqT; move=> x_in_D; last first.
462462
by rewrite nth_default // memNindex // !size_map.
463-
rewrite (nth_map (0, x)); last first.
463+
rewrite (nth_map (0, x)).
464464
by rewrite -(size_map (@snd _ _)) index_mem x_in_D.
465465
by apply/rD/mem_nth; rewrite -(size_map (@snd _ _)) index_mem.
466466
Qed.
@@ -735,8 +735,8 @@ Section FreegZmodTypeTheory.
735735
apply/eqP/freeg_eqP=> x /=; rewrite raddf_sum /=.
736736
case x_in_dom: (x \in dom D); last rewrite coeff_outdom ?x_in_dom //.
737737
+ rewrite (bigD1_seq x) ?uniq_dom //= big1 ?addr0.
738-
* by rewrite coeffU eqxx mulr1.
739738
* by move=> z ne_z_x; rewrite coeffU (negbTE ne_z_x) mulr0.
739+
* by rewrite coeffU eqxx mulr1.
740740
+ rewrite big_seq big1 // => z z_notin_dom; rewrite coeffU.
741741
have ->: (z == x)%:R = 0 :> R; last by rewrite mulr0.
742742
by case: (z =P x)=> //= eq_zx; rewrite eq_zx x_in_dom in z_notin_dom.
@@ -916,7 +916,7 @@ Section FreegCmpDom.
916916
0 <=g D1 -> 0 <=g D2 -> dom (D1 + D2) =i dom D1 ++ dom D2.
917917
Proof.
918918
move=> pos_D1 pos_D2 z; rewrite mem_cat !mem_dom coeffD.
919-
by rewrite paddr_eq0; first 1 [rewrite negb_and] || apply/fgposP.
919+
by rewrite paddr_eq0; last 1 [rewrite negb_and] || apply/fgposP.
920920
Qed.
921921
End FreegCmpDom.
922922

@@ -931,7 +931,7 @@ Section FreegMap.
931931
z \in dom D -> coeff z (fgmap D) = f (coeff z D) *+ P z.
932932
Proof.
933933
move=> zD; rewrite /fgmap raddf_sum /= -big_filter; case Pz: (P z).
934-
+ rewrite (bigD1_seq z) ?(filter_uniq, uniq_dom) //=; last first.
934+
+ rewrite (bigD1_seq z) ?(filter_uniq, uniq_dom) //=.
935935
by rewrite mem_filter Pz.
936936
rewrite coeffU eqxx mulr1 big1 ?addr0 //.
937937
by move=> z' ne_z'z; rewrite coeffU (negbTE ne_z'z) mulr0.
@@ -1045,13 +1045,12 @@ Section PosFreegDeg.
10451045
Lemma fgpos_eq0P (D : {freeg K}) : 0 <=g D -> deg D = 0 -> D = 0.
10461046
Proof.
10471047
move=> posD; rewrite -{1}[D]freeg_sumE raddf_sum /=.
1048-
rewrite (eq_bigr (fun z => coeff z D)); last first.
1048+
rewrite (eq_bigr (fun z => coeff z D)).
10491049
by move=> i _; rewrite degU.
1050-
move/eqP; rewrite psumr_eq0; last by move=> i _; apply/fgposP.
1050+
move/eqP; rewrite psumr_eq0; first by move=> i _; apply/fgposP.
10511051
move/allP=> zD; apply/eqP; apply/freeg_eqP=> z; rewrite coeff0.
1052-
case z_in_D: (z \in dom D); last first.
1053-
by rewrite coeff_outdom // z_in_D.
1054-
exact/eqP/zD.
1052+
case z_in_D: (z \in dom D); first exact/eqP/zD.
1053+
by rewrite coeff_outdom // z_in_D.
10551054
Qed.
10561055

10571056
Lemma fgneg_eq0P (D : {freeg K}) : D <=g 0 -> deg D = 0 -> D = 0.
@@ -1076,7 +1075,7 @@ Section PosFreegDeg.
10761075
case: (p =P q) =>[<-/=|]; last first.
10771076
by move=> _; rewrite subr0; apply/fgposP.
10781077
by rewrite subr_ge0.
1079-
move/fgpos_eq0P=> ->; first by rewrite add0r; exists p.
1078+
move/fgpos_eq0P=> ->; last by rewrite add0r; exists p.
10801079
by rewrite degB degU degD_eq1 subrr.
10811080
Qed.
10821081

@@ -1108,7 +1107,7 @@ Section FreegIndDom.
11081107
move=> p /=; rewrite !inE; apply/negP=> /andP [].
11091108
rewrite /DR => /dom_sum_subset /flattenP.
11101109
case=> [ps /mapP [q]]; rewrite mem_filter => /andP [].
1111-
move=> Rq q_in_D ->; rewrite domU ?mem_seq1; last first.
1110+
move=> Rq q_in_D ->; rewrite domU ?mem_seq1.
11121111
by rewrite -(mem_dom D q).
11131112
by move/eqP=> ->; move: Rq; rewrite /in_mem /= => ->.
11141113
move: DR => DR domDR; rewrite addrC -big_filter.
@@ -1135,15 +1134,15 @@ Section FreegIndDom.
11351134
move/perm_filter=> /(_ [pred q | ~~ (F q)]) /=.
11361135
rewrite NRp; rewrite perm_sym; move/perm_trans => /(_ _ DE).
11371136
rewrite perm_cons => domD'; rewrite big_seq.
1138-
rewrite (eq_bigr (fun q => << coeff q D' *g q >>)); last first.
1137+
rewrite (eq_bigr (fun q => << coeff q D' *g q >>)).
11391138
move=> q q_in_ps; rewrite /D' coeffB coeffU; case: (p =P q).
11401139
- by move=> eq_pq; move: p_notin_ps; rewrite eq_pq q_in_ps.
11411140
- by move=> _; rewrite mulr0 subr0.
11421141
by rewrite -big_seq; apply: IH.
11431142
* apply/negP=> /domD_subset; rewrite mem_cat; case/orP; last first.
11441143
by move=> p_in_DR; move/(_ p): domDR; rewrite !inE NRp p_in_DR.
11451144
move/dom_sum_subset; rewrite filter_predT => /flattenP [qs].
1146-
move/mapP => [q q_in_ps ->]; rewrite domU; last first.
1145+
move/mapP => [q q_in_ps ->]; rewrite domU.
11471146
move/perm_mem/(_ q): DE; rewrite !inE q_in_ps orbT.
11481147
by rewrite mem_filter => /andP [_]; rewrite mem_dom.
11491148
rewrite mem_seq1 => /eqP pq_eq; move: p_notin_ps.

src/monalg.v

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ From HB Require Import structures.
99
From mathcomp Require Import ssreflect ssrfun ssrbool eqtype ssrnat.
1010
From mathcomp Require Import seq path choice finset fintype finfun.
1111
From mathcomp Require Import tuple bigop ssralg ssrint ssrnum.
12-
Set SsrOldRewriteGoalsOrder. (* change Set to Unset when porting the file, then remove the line when requiring MathComp >= 2.6 *)
12+
Unset SsrOldRewriteGoalsOrder. (* remove the line when requiring MathComp >= 2.6 *)
1313

1414
Require Import xfinmap.
1515

@@ -465,7 +465,7 @@ over.
465465
case: (msuppP g) => k1g; last first.
466466
rewrite raddf0; apply: big1_fset => x xg _.
467467
by apply: big1_fset => y _ _; case: eqP xg k1g => //= -> ->.
468-
rewrite (big_fsetD1 _ k1g)/= [s in _ + s]big1_fset; last first.
468+
rewrite (big_fsetD1 _ k1g)/= [s in _ + s]big1_fset.
469469
move=> k1; rewrite !inE => /andP[k1neq _] _.
470470
by apply: big1_fset => k2 _ _; rewrite (negPf k1neq).
471471
rewrite eqxx/= addr0; case: (msuppP g@_k.1) => k2g; last first.
@@ -688,7 +688,7 @@ Lemma fgmullw (d1 d2 : {fset K}) g1 g2 :
688688
msupp g1 `<=` d1 -> msupp g2 `<=` d2 ->
689689
fgmul g1 g2 = \sum_(k1 <- d1) \sum_(k2 <- d2) g1 *M_[k1, k2] g2.
690690
Proof.
691-
move=> le_d1 le_d2; rewrite -(big_fset_incl _ le_d1)/=; last first.
691+
move=> le_d1 le_d2; rewrite -(big_fset_incl _ le_d1)/=.
692692
by move=> k _ /mcoeff_outdom g1k; apply/big1 => ?; rewrite g1k mul0r monalgU0.
693693
apply/eq_bigr=> k1 _; apply/big_fset_incl => // k _ /mcoeff_outdom ->.
694694
by rewrite mulr0 monalgU0.
@@ -903,9 +903,9 @@ rewrite (@malgMEw E E) // (big_fsetD1 1%M) //=. 2: by close.
903903
rewrite (big_fsetD1 1%M) //= mulm1 2!mcoeffD mcoeffUU.
904904
rewrite ![\sum_(i <- E `\ 1%M) _]big_seq.
905905
rewrite !raddf_sum !big1 ?addr0 //= => k; rewrite in_fsetD1 => /andP [ne1_k _].
906-
rewrite raddf_sum big1 ?mcoeff0 //= => k'; rewrite mcoeffU.
907-
by case: eqP=> // /eqP /unitmP []; rewrite (negbTE ne1_k).
908-
by rewrite mcoeffU mul1m (negbTE ne1_k).
906+
by rewrite mcoeffU mul1m (negbTE ne1_k).
907+
rewrite raddf_sum big1 ?mcoeff0 //= => k'; rewrite mcoeffU.
908+
by case: eqP=> // /eqP /unitmP []; rewrite (negbTE ne1_k).
909909
Qed.
910910

911911
HB.instance Definition _ :=
@@ -928,10 +928,10 @@ rewrite mcurryE !mcoeffMl raddf_sum/=.
928928
rewrite (partition_big_imfset _ fst)/= msupp_curryl; apply/eq_bigr => k1l _.
929929
rewrite exchange_big (partition_big_imfset _ fst) raddf_sum msupp_curryl/=.
930930
apply/eq_bigr => k1r _; rewrite exchange_big raddfMn/= mcoeffMl -sumrMnl.
931-
rewrite (* SLOW *)msupp_curryr big_imfset/=; last first.
931+
rewrite (* SLOW *)msupp_curryr big_imfset/=.
932932
by move=> [? ?] [? ?] /andP[/= _ /eqP ->] /andP[/= _ /eqP ->] ->.
933933
rewrite big_filter; apply/eq_bigr => -[_ k2l]/= /eqP ->.
934-
rewrite -sumrMnl msupp_curryr big_imfset/=; last first.
934+
rewrite -sumrMnl msupp_curryr big_imfset/=.
935935
by move=> [? ?] [? ?] /andP[/= _ /eqP ->] /andP[/= _ /eqP ->] ->.
936936
rewrite big_filter; apply/eq_bigr => -[_ k2r]/= /eqP ->.
937937
by rewrite !mcurryE -mulrnA mulnb andbC.

0 commit comments

Comments
 (0)