Skip to content

Commit d9874e4

Browse files
committed
feat(NumberTheory/NumberField/Cyclotomic): cardinality of the subgroup of characters associated to an intermediate field equals its degree (#37267)
New main result : `card_intermediateFieldEquivSubgroupChar`: the cardinality of the subgroup of Dirichlet characters of level `n` associated to an intermediate field `F` of `ℚ(ζₙ)/ℚ` equals the degree `[F : ℚ]`.
1 parent 798421c commit d9874e4

4 files changed

Lines changed: 42 additions & 1 deletion

File tree

Mathlib/Algebra/Group/Subgroup/Finite.lean

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,11 @@ theorem card_subtype (K : Subgroup G) (L : Subgroup K) :
170170
Nat.card (map K.subtype L) = Nat.card L :=
171171
card_map_of_injective K.subtype_injective
172172

173+
@[to_additive]
174+
theorem card_mapSubgroup {G' : Type*} [Group G'] (e : G ≃* G') :
175+
Nat.card (e.mapSubgroup H) = Nat.card H :=
176+
Subgroup.card_map_of_injective e.injective
177+
173178
end Subgroup
174179

175180
namespace Subgroup

Mathlib/GroupTheory/FiniteAbelian/Duality.lean

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,13 @@ theorem forall_monoidHom_apply_eq_one_iff (H : Subgroup G) (x : G) :
128128
simp only [← QuotientGroup.eq_one_iff, ← forall_apply_eq_apply_iff _ (M := M), map_one] at h ⊢
129129
exact fun φ ↦ h (φ.comp (QuotientGroup.mk' H)) fun y hy ↦ hy φ
130130

131+
theorem card_restrictHom_ker (H : Subgroup G) :
132+
Nat.card (restrictHom H Mˣ).ker = Nat.card (G ⧸ H) := by
133+
have : HasEnoughRootsOfUnity M (Monoid.exponent (G ⧸ H)) :=
134+
hM.of_dvd M <| Group.exponent_quotient_dvd H
135+
rw [Nat.card_congr (MonoidHom.restrictHomKerEquiv Mˣ H).toEquiv,
136+
card_monoidHom_of_hasEnoughRootsOfUnity]
137+
131138
variable (G) in
132139
/--
133140
The `MulEquiv` between the double dual `(G →* Mˣ) →* Mˣ` of a finite commutative group `G`
@@ -194,4 +201,10 @@ theorem mem_subgroupOrderIsoSubgroupMonoidHom_symm_iff (Φ : Subgroup (G →* M
194201
Subgroup.mem_map_equiv, mem_ker, restrictHom_apply, restrict_eq_one_iff,
195202
monoidHomMonoidHomEquiv_symm_apply_apply]
196203

204+
/-- The cardinality of the dual subgroup of `G →* Mˣ` associated to a subgroup `H` of `G`
205+
equals the index of `H` in `G`. -/
206+
theorem card_subgroupOrderIsoSubgroupMonoidHom (H : Subgroup G) :
207+
Nat.card (subgroupOrderIsoSubgroupMonoidHom G M H).ofDual = Nat.card (G ⧸ H) :=
208+
card_restrictHom_ker _ _
209+
197210
end CommGroup

Mathlib/NumberTheory/MulChar/Duality.lean

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,4 +133,12 @@ theorem mem_subgroupOrderIsoSubgroupMulChar_symm_iff {X : Subgroup (MulChar M R)
133133
m ∈ (subgroupOrderIsoSubgroupMulChar M R).symm (OrderDual.toDual X) ↔ ∀ χ ∈ X, χ m = 1 := by
134134
simp [subgroupOrderIsoSubgroupMulChar, ← Units.val_eq_one]
135135

136+
/-- The cardinality of the dual subgroup of `MulChar M R` associated to a subgroup `H` of `Mˣ`
137+
equals the index of `H` in `Mˣ`. -/
138+
theorem card_subgroupOrderIsoSubgroupMulChar {H : Subgroup Mˣ} :
139+
Nat.card (subgroupOrderIsoSubgroupMulChar M R H).ofDual = Nat.card (Mˣ ⧸ H) := by
140+
rw [subgroupOrderIsoSubgroupMulChar, OrderIso.trans_apply, OrderIso.dual_apply,
141+
OrderDual.ofDual_toDual, Subgroup.card_mapSubgroup,
142+
CommGroup.card_subgroupOrderIsoSubgroupMonoidHom]
143+
136144
end MulChar

Mathlib/NumberTheory/NumberField/Cyclotomic/Galois.lean

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,12 @@ theorem mem_subgroupGalEquivSubgroupChar_symm_iff (σ : Gal(K/ℚ))
180180
MulEquiv.coe_mapSubgroup, Subgroup.mem_map_equiv, MulEquiv.symm_symm,
181181
mem_subgroupOrderIsoSubgroupMulChar_symm_iff]
182182

183-
variable [IsGalois ℚ K]
183+
theorem card_subgroupGalEquivSubgroupChar [IsMulCommutative Gal(K/ℚ)] (H : Subgroup Gal(K/ℚ)) :
184+
Nat.card (subgroupGalEquivSubgroupChar n K R H).ofDual = Nat.card (Gal(K/ℚ) ⧸ H) := by
185+
rw [subgroupGalEquivSubgroupChar, OrderIso.trans_apply, card_subgroupOrderIsoSubgroupMulChar]
186+
exact Nat.card_congr (QuotientGroup.congr _ _ (galEquivZMod n K) rfl).symm.toEquiv
187+
188+
variable [IsAbelianGalois ℚ K]
184189

185190
/--
186191
The bijection between the intermediate fields of `ℚ(ζₙ)/ℚ` and the subgroups of the group
@@ -191,6 +196,16 @@ noncomputable def intermediateFieldEquivSubgroupChar :
191196
IsGalois.intermediateFieldEquivSubgroup.trans <|
192197
(subgroupGalEquivSubgroupChar n K R).dual.trans (OrderIso.dualDual _).symm
193198

199+
/-- The cardinality of the subgroup of Dirichlet characters of level `n` associated to an
200+
intermediate field `F` of `ℚ(ζₙ)/ℚ` equals the degree `[F : ℚ]`. -/
201+
theorem card_intermediateFieldEquivSubgroupChar (F : IntermediateField ℚ K) :
202+
Nat.card (intermediateFieldEquivSubgroupChar n K R F) = Module.finrank ℚ F := by
203+
unfold intermediateFieldEquivSubgroupChar
204+
rw [OrderIso.trans_apply, OrderIso.trans_apply, OrderIso.dualDual_symm_apply,
205+
IsGalois.intermediateFieldEquivSubgroup_apply, OrderIso.dual_apply, OrderDual.ofDual_toDual,
206+
OrderDual.ofDual_toDual, card_subgroupGalEquivSubgroupChar, finrank_eq_fixingSubgroup_index,
207+
← Subgroup.index_eq_card]
208+
194209
@[simp]
195210
theorem mem_intermediateFieldEquivSubgroupChar_iff (F : IntermediateField ℚ K)
196211
(χ : DirichletCharacter R n) :

0 commit comments

Comments
 (0)