Skip to content

Commit 51af6b8

Browse files
author
qvermande
committed
shortens a few lines and puts lemmas away
1 parent e632d24 commit 51af6b8

File tree

2 files changed

+21
-17
lines changed

2 files changed

+21
-17
lines changed

theories/abel.v

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ From mathcomp Require Import all_ssreflect all_fingroup all_algebra.
22
From mathcomp Require Import all_solvable all_field polyrcf.
33
From Abel Require Import various classic_ext map_gal algR.
44
From 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.
365364
Variables (F0 : fieldType) (L : splittingFieldType F0).
366365
Implicit 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-
381367
Lemma 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.
383369
Proof.
384-
have [->|NEF] := eqVneq (E : {vspace _}) F; first by [].
370+
have [->//|NEF] := eqVneq (E : {vspace _}) F.
385371
have [n] := ubnP (\dim_E F); elim: n => // n IHn in w E F NEF *.
386372
rewrite ltnS leq_eqVlt => /predU1P[/[dup] dimEF ->|]; last exact: IHn.
387373
move=> wroot wE galEF /[dup] cycEF /cyclicP[/= g GE].
388374
have ggen : generator ('Gal(F / E))%g g by rewrite GE generator_cycle.
389375
have ggal : g \in ('Gal(F / E))%g by rewrite GE cycle_id.
390376
have EF := galois_subW galEF.
391377
have 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.
394380
have n_gt0: (0 < n)%N by apply: leq_trans n_gt1.
395381
suff [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).
430416
have 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.
432418
have [xE|xNE] := boolP (x \in E).
433419
rewrite (fixed_gal EF)// divff// => w1.
434420
by rewrite w1 prim_root1// gtn_eqF in wroot.

theories/xmathcomp/various.v

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

88+
(*******)
89+
(* div *)
90+
(*******)
91+
92+
Lemma muln_div_trans (d m n : nat) : (d %| m)%N -> (n %| d)%N ->
93+
((m %/ d) * (d %/ n))%N = (m %/ n)%N.
94+
Proof. by move=> dm nd; rewrite muln_divA// divnK. Qed.
95+
8896
(*********)
8997
(* tuple *)
9098
(*********)
@@ -786,6 +794,10 @@ Qed.
786794
(* fieldext *)
787795
(************)
788796

797+
Lemma muln_dimv [F0 : fieldType] [L : fieldExtType F0] (E F K : {subfield L}) :
798+
(K <= E)%VS -> (E <= F)%VS -> (\dim_K E * \dim_E F)%N = \dim_K F.
799+
Proof. by move=> KE EF; rewrite mulnC muln_div_trans// ?field_dimS. Qed.
800+
789801
Lemma ahom_eq_adjoin [F0 : fieldType] [K : fieldExtType F0] [rT : FalgType F0]
790802
(f g : 'AHom(K, rT)) (U : {subfield K}) (x : K) :
791803
{in U, f =1 g} -> f x = g x -> {in <<U; x>>%VS, f =1 g}.
@@ -1154,6 +1166,12 @@ Qed.
11541166
(* galois *)
11551167
(**********)
11561168

1169+
Lemma galX (F0 : fieldType) (L : splittingFieldType F0) (E : {subfield L})
1170+
n (x : gal_of E) [a : L] : a \in E -> (x ^+ n)%g a = iter n x a.
1171+
Proof.
1172+
by elim: n => [|n IHn] aE; rewrite (expg0, expgSr)/= (gal_id, galM)/= ?IHn.
1173+
Qed.
1174+
11571175
Lemma gal1 (F0 : fieldType) (L : splittingFieldType F0)
11581176
(K : {subfield L}) (g : gal_of K) : g \in 'Gal(K / 1%VS)%g.
11591177
Proof. by rewrite gal_kHom ?sub1v// k1HomE ahomWin. Qed.

0 commit comments

Comments
 (0)