@@ -416,7 +416,8 @@ move=> n_gt0; have [->|xN0] := eqVneq x 0.
416
416
rewrite [LHS](@all_roots_prod_XsubC _ _ ws).
417
417
- by rewrite (monicP _) ?monic_XnsubC// scale1r big_map big_enum.
418
418
- by rewrite size_XnsubC// size_map size_enum_ord.
419
- - rewrite all_map; apply/allP => i _ /=; rewrite /root !hornerE hornerXn.
419
+ - rewrite all_map; apply/allP => i _ /=; rewrite /root !hornerE ?hornerXn.
420
+ (* FIXME: remove ?hornerXn when requiring MC >= 1.16.0 *)
420
421
by rewrite exprMn exprAC [w ^+ _]prim_expr_order// expr1n mulr1 subrr.
421
422
- by rewrite uniq_rootsE uniq_roots_Xn_sub_xn.
422
423
Qed .
@@ -433,7 +434,8 @@ Lemma dvdp_minpoly_Xn_subn E :
433
434
(x ^+ p)%R \in E -> minPoly E x %| ('X^p - (x ^+ p)%:P).
434
435
Proof using .
435
436
move=> xpE; have [->|p_gt0] := posnP p; first by rewrite !expr0 subrr dvdp0.
436
- by rewrite minPoly_dvdp /root ?poly_XnsubC_over// !hornerE hornerXn subrr.
437
+ by rewrite minPoly_dvdp /root ?poly_XnsubC_over// !hornerE ?hornerXn subrr.
438
+ (* FIXME: remove ?hornerXn when requiring MC >= 1.16.0 *)
437
439
Qed .
438
440
439
441
Lemma galois_cyclo_radical E : (p > 0)%N -> x ^+ p \in E ->
@@ -1505,7 +1507,8 @@ have Cchar := Cchar => p_neq0; split.
1505
1507
move=> /radicalP[]; case: i => // i in epw * => _ uik.
1506
1508
pose v := i.+1.-root (iota (u ^+ i.+1)).
1507
1509
have : ('X ^+ i.+1 - (v ^+ i.+1)%:P).[iota u] == 0.
1508
- by rewrite !hornerE hornerXn rootCK// rmorphX subrr.
1510
+ by rewrite !hornerE ?hornerXn rootCK// rmorphX subrr.
1511
+ (* FIXME: remove ?hornerXn when requiring MC >= 1.16.0 *)
1509
1512
have /Xn_sub_xnE->// := prim1rootP (isT : 0 < i.+1)%N.
1510
1513
rewrite horner_prod prodf_seq_eq0/= => /hasP[/= l _].
1511
1514
rewrite hornerXsubC subr_eq0 => /eqP u_eq.
0 commit comments