Skip to content

Commit 65e1296

Browse files
qvermandeTragicus
authored andcommitted
shortens a few lines and puts lemmas away
1 parent 11a16d5 commit 65e1296

2 files changed

Lines changed: 25 additions & 17 deletions

File tree

theories/abel.v

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ From mathcomp Require Import all_ssreflect all_fingroup all_algebra.
44
From mathcomp Require Import all_solvable all_field polyrcf.
55
From Abel Require Import various classic_ext map_gal algR.
66
From Abel Require Import char0 cyclotomic_ext real_closed_ext artin_scheier.
7-
From Abel Require Import temp.
87

98
(*****************************************************************************)
109
(* We work inside a enclosing splittingFieldType L over a base field F0 *)
@@ -367,31 +366,18 @@ Section Part1.
367366
Variables (F0 : fieldType) (L : splittingFieldType F0).
368367
Implicit Types (E F K : {subfield L}) (w : L) (n : nat).
369368

370-
Lemma muln_div_trans d m n : (d %| m)%N -> (n %| d)%N ->
371-
((m %/ d) * (d %/ n))%N = (m %/ n)%N.
372-
Proof. by move=> dm nd; rewrite muln_divA// divnK. Qed.
373-
374-
Lemma muln_dimv E F K :
375-
(K <= E)%VS -> (E <= F)%VS -> (\dim_K E * \dim_E F)%N = \dim_K F.
376-
Proof. by move=> KE EF; rewrite mulnC muln_div_trans// ?field_dimS. Qed.
377-
378-
Lemma galX E n (x : gal_of E) [a : L] : a \in E -> (x ^+ n)%g a = iter n x a.
379-
Proof.
380-
by elim: n => [|n IHn] aE; rewrite (expg0, expgSr)/= (gal_id, galM)/= ?IHn.
381-
Qed.
382-
383369
Lemma cyclic_radical_ext w E F : ((\dim_E F)`_[char L]^').-primitive_root w ->
384370
w \in E -> galois E F -> cyclic 'Gal(F / E) -> radical.-ext E F.
385371
Proof.
386-
have [->|NEF] := eqVneq (E : {vspace _}) F; first by [].
372+
have [->//|NEF] := eqVneq (E : {vspace _}) F.
387373
have [n] := ubnP (\dim_E F); elim: n => // n IHn in w E F NEF *.
388374
rewrite ltnS leq_eqVlt => /predU1P[/[dup] dimEF ->|]; last exact: IHn.
389375
move=> wroot wE galEF /[dup] cycEF /cyclicP[/= g GE].
390376
have ggen : generator ('Gal(F / E))%g g by rewrite GE generator_cycle.
391377
have ggal : g \in ('Gal(F / E))%g by rewrite GE cycle_id.
392378
have EF := galois_subW galEF.
393379
have n_gt1 : (n > 1)%N.
394-
rewrite -dimEF ltn_divRL ?mul1n// ?field_dimS//.
380+
rewrite -dimEF ltn_divRL ?field_dimS// mul1n.
395381
by rewrite eqEdim EF/= -ltnNge in NEF.
396382
have n_gt0: (0 < n)%N by apply: leq_trans n_gt1.
397383
suff [k [a [k0 aE aF /rext_r arad]]]:
@@ -430,7 +416,7 @@ have [|x [xF xN0]] := Hilbert's_theorem_90 ggen (subvP EF _ wE) _.
430416
rewrite /galNorm; under eq_bigr do rewrite (fixed_gal EF)//.
431417
by rewrite prodr_const -galois_dim// dimEF (prim_expr_order wroot).
432418
have gxN0 : g x != 0 by rewrite fmorph_eq0.
433-
have wN0 : w != 0 by rewrite (primitive_root_eq0 wroot) -lt0n // dimEF.
419+
have wN0 : w != 0 by rewrite (primitive_root_eq0 wroot) -lt0n.
434420
have [xE|xNE] := boolP (x \in E).
435421
rewrite (fixed_gal EF)// divff// => w1.
436422
by rewrite w1 prim_root1// gtn_eqF in wroot.

theories/xmathcomp/various.v

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,14 @@ apply: (iffP andP) => [[ryz rzs] [|i]// /IHs->//|rS].
8686
by rewrite (rS 0); split=> //; apply/IHs => i /(rS i.+1).
8787
Qed.
8888

89+
(*******)
90+
(* div *)
91+
(*******)
92+
93+
Lemma muln_div_trans (d m n : nat) : (d %| m)%N -> (n %| d)%N ->
94+
((m %/ d) * (d %/ n))%N = (m %/ n)%N.
95+
Proof. by move=> dm nd; rewrite muln_divA// divnK. Qed.
96+
8997
(*********)
9098
(* tuple *)
9199
(*********)
@@ -830,6 +838,10 @@ Qed.
830838
(* fieldext *)
831839
(************)
832840

841+
Lemma muln_dimv [F0 : fieldType] [L : fieldExtType F0] (E F K : {subfield L}) :
842+
(K <= E)%VS -> (E <= F)%VS -> (\dim_K E * \dim_E F)%N = \dim_K F.
843+
Proof. by move=> KE EF; rewrite mulnC muln_div_trans// ?field_dimS. Qed.
844+
833845
Lemma ahom_eq_adjoin [F0 : fieldType] [K : fieldExtType F0] [rT : FalgType F0]
834846
(f g : 'AHom(K, rT)) (U : {subfield K}) (x : K) :
835847
{in U, f =1 g} -> f x = g x -> {in <<U; x>>%VS, f =1 g}.
@@ -1209,6 +1221,16 @@ Qed.
12091221
(* galois *)
12101222
(**********)
12111223

1224+
Lemma galX (F0 : fieldType) (L : splittingFieldType F0) (E : {subfield L})
1225+
n (x : gal_of E) [a : L] : a \in E -> (x ^+ n)%g a = iter n x a.
1226+
Proof.
1227+
by elim: n => [|n IHn] aE; rewrite (expg0, expgSr)/= (gal_id, galM)/= ?IHn.
1228+
Qed.
1229+
1230+
Lemma gal1 (F0 : fieldType) (L : splittingFieldType F0)
1231+
(K : {subfield L}) (g : gal_of K) : g \in 'Gal(K / 1%VS)%g.
1232+
Proof. by rewrite gal_kHom ?sub1v// k1HomE ahomWin. Qed.
1233+
12121234
Lemma gal_ne (F0 : fieldType) (L : splittingFieldType F0) (E : {subfield L})
12131235
(f g : gal_of E) : f = g \/ exists x, x \in E /\ f x != g x.
12141236
Proof.

0 commit comments

Comments
 (0)