A cyclic character is determined by its restriction to a normal subgroup of coprime index. This uniqueness statement does not require finite index.
Source context 2 commands
Surrounding namespaces, section variables, and local commands at this declaration.
namespace ClassFieldTower.Cohomology
variable {G : Type*} [Group G]theorem cyclicCharacterRestriction_injective_of_index_coprime
(H : Subgroup G) [H.Normal] (n : ℕ) (hcop : H.index.Coprime n) :
Function.Injective
(fun φ : G →* Multiplicative (ZMod n) => φ.comp H.subtype) := by
intro φ ψ hres
apply MonoidHom.ext
intro g
have hpow : g ^ H.index ∈ H := by
apply (QuotientGroup.eq_one_iff (g ^ H.index)).mp
change (QuotientGroup.mk' H) (g ^ H.index) = 1
rw [map_pow, Subgroup.index_eq_card]
exact pow_card_eq_one'
have heq := DFunLike.congr_fun hres (⟨g ^ H.index, hpow⟩ : H)
change φ (g ^ H.index) = ψ (g ^ H.index) at heq
rw [map_pow, map_pow] at heq
have hunit : IsUnit (H.index : ZMod n) :=
(ZMod.isUnit_iff_coprime H.index n).mpr hcop
apply Multiplicative.toAdd.injective
apply hunit.mul_left_cancel
simpa only [toAdd_pow, nsmul_eq_mul] using
congrArg (fun z : Multiplicative (ZMod n) => z.toAdd) heq