@@ -295,30 +295,26 @@ open scoped Pointwise
295295
296296open 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. -/
324320lemma 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
340345end inertia
341346
0 commit comments