Skip to content

Commit 70f57bb

Browse files
committed
wip
1 parent af2263d commit 70f57bb

5 files changed

Lines changed: 1145 additions & 24 deletions

File tree

Mathlib/Algebra/Algebra/Defs.lean

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -436,4 +436,8 @@ theorem algebraMap.coe_smul' [Monoid A] [MulDistribMulAction A C] [SMulDistribCl
436436
(a • b : B) = a • (b : C) := by
437437
simp [Algebra.algebraMap_eq_smul_one, smul_distrib_smul]
438438

439+
@[norm_cast]
440+
theorem algebraMap.smul [Monoid A] [MulDistribMulAction A C] [SMulDistribClass A B C] :
441+
algebraMap B C (a • b) = a • (algebraMap B C b) := coe_smul' _ _ _
442+
439443
end algebraMap

Mathlib/NumberTheory/RamificationInertia/Galois.lean

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -295,30 +295,26 @@ open scoped Pointwise
295295

296296
open Algebra
297297

298-
attribute [local instance 1001] Ideal.Quotient.field Module.Free.of_divisionRing in
299-
lemma ncard_primesOver_mul_card_inertia_mul_finrank (p : Ideal R) [p.IsMaximal]
298+
attribute [local instance] Ideal.Quotient.field in
299+
theorem card_stabilizer_eq_card_inertia_mul_finrank (p : Ideal R) [p.IsMaximal]
300300
(P : Ideal S) [P.LiesOver p] [P.IsMaximal] [Algebra.IsSeparable (R ⧸ p) (S ⧸ P)] :
301-
(p.primesOver S).ncard * Nat.card (P.inertia G) *
302-
Module.finrank (R ⧸ p) (S ⧸ P) = Nat.card G := by
303-
trans (p.primesOver S).ncard * Nat.card (MulAction.stabilizer G P); swap
304-
· rw [← IsInvariant.orbit_eq_primesOver R S G p P]
305-
simpa using Nat.card_congr (MulAction.orbitProdStabilizerEquivGroup G P)
306-
rw [mul_assoc]
301+
Nat.card (MulAction.stabilizer G P) = Nat.card (inertia G P) *
302+
Module.finrank (R ⧸ p) (S ⧸ P) := by
307303
have : IsGalois (R ⧸ p) (S ⧸ P) := { __ := Ideal.Quotient.normal (A := R) G p P }
308304
have := Ideal.Quotient.finite_of_isInvariant G p P
309-
congr 1
310305
have : Subgroup.index _ = _ := Nat.card_congr
311-
(QuotientGroup.quotientKerEquivOfSurjective (Ideal.Quotient.stabilizerHom P p G)
312-
(Ideal.Quotient.stabilizerHom_surjective G p P)).toEquiv
313-
rw [← IsGalois.card_aut_eq_finrank, ← this]
314-
convert (Ideal.Quotient.stabilizerHom P p G).ker.card_mul_index using 2
315-
rw [Ideal.Quotient.ker_stabilizerHom]
316-
refine Nat.card_congr (Subgroup.subgroupOfEquivOfLe ?_).toEquiv.symm
317-
intro σ hσ
318-
ext x
319-
rw [Ideal.pointwise_smul_eq_comap, Ideal.mem_comap]
320-
convert P.add_mem_iff_right (inv_mem hσ x) (b := x) using 2
321-
simp
306+
(Quotient.stabilizerQuotientInertiaEquiv G p P).toEquiv
307+
rw [← IsGalois.card_aut_eq_finrank, ← this,
308+
← ((inertia G P).subgroupOf (MulAction.stabilizer G P)).card_mul_index,
309+
Nat.card_congr (Subgroup.subgroupOfEquivOfLe (inertia_le_stabilizer (M := G) P)).toEquiv]
310+
311+
lemma ncard_primesOver_mul_card_inertia_mul_finrank (p : Ideal R) [p.IsMaximal]
312+
(P : Ideal S) [P.LiesOver p] [P.IsMaximal] [Algebra.IsSeparable (R ⧸ p) (S ⧸ P)] :
313+
(p.primesOver S).ncard * Nat.card (P.inertia G) *
314+
Module.finrank (R ⧸ p) (S ⧸ P) = Nat.card G := by
315+
rw [mul_assoc, ← card_stabilizer_eq_card_inertia_mul_finrank,
316+
← IsInvariant.orbit_eq_primesOver R S G p P]
317+
simpa using Nat.card_congr (MulAction.orbitProdStabilizerEquivGroup G P)
322318

323319
/-- The cardinality of the inertia group is equal to the ramification index. -/
324320
lemma card_inertia_eq_ramificationIdxIn
@@ -333,9 +329,18 @@ lemma card_inertia_eq_ramificationIdxIn
333329
refine mul_left_injective₀ (b := Module.finrank (R ⧸ p) (S ⧸ P)) ?_ ?_
334330
· intro e; simp [e, eq_comm, Nat.card_eq_zero, ‹Finite G›.not_infinite] at H
335331
dsimp only
336-
rw [H, mul_assoc, ← Ideal.inertiaDeg_algebraMap,
337-
← Ideal.inertiaDegIn_eq_inertiaDeg p P G,
338-
Ideal.ncard_primesOver_mul_ramificationIdxIn_mul_inertiaDegIn hp S G]
332+
rw [H, mul_assoc, ← inertiaDeg_algebraMap, ← inertiaDegIn_eq_inertiaDeg p P G,
333+
ncard_primesOver_mul_ramificationIdxIn_mul_inertiaDegIn hp S G]
334+
335+
/-- The cardinality of the decomposition group is equal to the ramification index times the
336+
inertia degree. -/
337+
lemma card_stabilizer_eq [IsDedekindDomain R] [IsDedekindDomain S] [Module.Finite R S]
338+
[IsTorsionFree R S] (p : Ideal R) (hp : p ≠ ⊥) (P : Ideal S) [P.LiesOver p] [P.IsMaximal]
339+
[Algebra.IsSeparable (R ⧸ p) (S ⧸ P)] :
340+
Nat.card (MulAction.stabilizer G P) = p.ramificationIdxIn S * p.inertiaDegIn S := by
341+
have := (show p.IsPrime from P.over_def p ▸ inferInstance).isMaximal hp
342+
rw [card_stabilizer_eq_card_inertia_mul_finrank p P, card_inertia_eq_ramificationIdxIn p hp,
343+
inertiaDegIn_eq_inertiaDeg p P G, inertiaDeg_algebraMap]
339344

340345
end inertia
341346

0 commit comments

Comments
 (0)