@@ -2,7 +2,6 @@ From mathcomp Require Import all_ssreflect all_fingroup all_algebra.
22From mathcomp Require Import all_solvable all_field polyrcf.
33From Abel Require Import various classic_ext map_gal algR.
44From Abel Require Import char0 cyclotomic_ext real_closed_ext artin_scheier.
5- From Abel Require Import temp.
65
76(**************************************************************************** *)
87(* We work inside a enclosing splittingFieldType L over a base field F0 *)
@@ -365,31 +364,18 @@ Section Part1.
365364Variables (F0 : fieldType) (L : splittingFieldType F0).
366365Implicit Types (E F K : {subfield L}) (w : L) (n : nat).
367366
368- Lemma muln_div_trans d m n : (d %| m)%N -> (n %| d)%N ->
369- ((m %/ d) * (d %/ n))%N = (m %/ n)%N.
370- Proof . by move=> dm nd; rewrite muln_divA// divnK. Qed .
371-
372- Lemma muln_dimv E F K :
373- (K <= E)%VS -> (E <= F)%VS -> (\dim_K E * \dim_E F)%N = \dim_K F.
374- Proof . by move=> KE EF; rewrite mulnC muln_div_trans// ?field_dimS. Qed .
375-
376- Lemma galX E n (x : gal_of E) [a : L] : a \in E -> (x ^+ n)%g a = iter n x a.
377- Proof .
378- by elim: n => [|n IHn] aE; rewrite (expg0, expgSr)/= (gal_id, galM)/= ?IHn.
379- Qed .
380-
381367Lemma cyclic_radical_ext w E F : ((\dim_E F)`_[char L]^').-primitive_root w ->
382368 w \in E -> galois E F -> cyclic 'Gal(F / E) -> radical.-ext E F.
383369Proof .
384- have [->|NEF] := eqVneq (E : {vspace _}) F; first by [] .
370+ have [->// |NEF] := eqVneq (E : {vspace _}) F.
385371have [n] := ubnP (\dim_E F); elim: n => // n IHn in w E F NEF *.
386372rewrite ltnS leq_eqVlt => /predU1P[/[dup] dimEF ->|]; last exact: IHn.
387373move=> wroot wE galEF /[dup] cycEF /cyclicP[/= g GE].
388374have ggen : generator ('Gal(F / E))%g g by rewrite GE generator_cycle.
389375have ggal : g \in ('Gal(F / E))%g by rewrite GE cycle_id.
390376have EF := galois_subW galEF.
391377have n_gt1 : (n > 1)%N.
392- rewrite -dimEF ltn_divRL ?mul1n// ? field_dimS//.
378+ rewrite -dimEF ltn_divRL ?field_dimS// mul1n .
393379 by rewrite eqEdim EF/= -ltnNge in NEF.
394380have n_gt0: (0 < n)%N by apply: leq_trans n_gt1.
395381suff [k [a [k0 aE aF /rext_r arad]]]:
@@ -428,7 +414,7 @@ have [|x [xF xN0]] := Hilbert's_theorem_90 ggen (subvP EF _ wE) _.
428414 rewrite /galNorm; under eq_bigr do rewrite (fixed_gal EF)//.
429415 by rewrite prodr_const -galois_dim// dimEF (prim_expr_order wroot).
430416have gxN0 : g x != 0 by rewrite fmorph_eq0.
431- have wN0 : w != 0 by rewrite (primitive_root_eq0 wroot) -lt0n // dimEF .
417+ have wN0 : w != 0 by rewrite (primitive_root_eq0 wroot) -lt0n.
432418have [xE|xNE] := boolP (x \in E).
433419 rewrite (fixed_gal EF)// divff// => w1.
434420 by rewrite w1 prim_root1// gtn_eqF in wroot.
0 commit comments