Galois group of cyclotomic extensions #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
In this file, we show the relationship between the Galois group of K(ζₙ) and (zmod n)ˣ;
it is always a subgroup, and if the nth cyclotomic polynomial is irreducible, they are isomorphic.
Main results #
- is_primitive_root.aut_to_pow_injective:- is_primitive_root.aut_to_powis injective in the case that it's considered over a cyclotomic field extension.
- is_cyclotomic_extension.aut_equiv_pow: If the- nth cyclotomic polynomial is irreducible in- K, then- is_primitive_root.aut_to_powis a- mul_equiv(for example, in- ℚand certain- 𝔽ₚ).
- gal_X_pow_equiv_units_zmod,- gal_cyclotomic_equiv_units_zmod: Repackage- is_cyclotomic_extension.aut_equiv_powin terms of- polynomial.gal.
- is_cyclotomic_extension.aut.comm_group: Cyclotomic extensions are abelian.
References #
TODO #
- We currently can get away with the fact that the power of a primitive root is a primitive root,
but the correct long-term solution for computing other explicit Galois groups is creating
power_basis.map_conjugate; but figuring out the exact correct assumptions + proof for this is mathematically nontrivial. (Current thoughts: the correct condition is that the annihilating ideal of both elements is equal. This may not hold in an ID, and definitely holds in an ICD.)
is_primitive_root.aut_to_pow is injective in the case that it's considered over a cyclotomic
field extension.
Cyclotomic extensions are abelian.
Equations
- is_cyclotomic_extension.aut.comm_group K = function.injective.comm_group ⇑(is_primitive_root.aut_to_pow K _) _ _ _ _ _ _ _
The mul_equiv that takes an automorphism f to the element k : (zmod n)ˣ such that
f μ = μ ^ k for any root of unity μ. A  strengthening of is_primitive_root.aut_to_pow.
Equations
- is_cyclotomic_extension.aut_equiv_pow L h = let hζ : is_primitive_root (is_cyclotomic_extension.zeta n K L) ↑n := _, hμ : ∀ (t : (zmod ↑n)ˣ), is_primitive_root (is_cyclotomic_extension.zeta n K L ^ ↑t.val) ↑n := _ in {to_fun := (is_primitive_root.aut_to_pow K _).to_fun, inv_fun := λ (t : (zmod ↑n)ˣ), (is_primitive_root.power_basis K hζ).equiv_of_minpoly (is_primitive_root.power_basis K _) _, left_inv := _, right_inv := _, map_mul' := _}
Maps μ to the alg_equiv that sends is_cyclotomic_extension.zeta to μ.
Equations
- is_cyclotomic_extension.from_zeta_aut hμ h = let hζ : ∃ (i : ℕ) (H : i < ↑n), is_cyclotomic_extension.zeta n K L ^ i = μ := _ in ⇑((is_cyclotomic_extension.aut_equiv_pow L h).symm) (zmod.unit_of_coprime hζ.some _)
is_cyclotomic_extension.aut_equiv_pow repackaged in terms of gal.
Asserts that the Galois group of cyclotomic n K is equivalent to (zmod n)ˣ
if cyclotomic n K is irreducible in the base field.
is_cyclotomic_extension.aut_equiv_pow repackaged in terms of gal.
Asserts that the Galois group of X ^ n - 1 is equivalent to (zmod n)ˣ
if cyclotomic n K is irreducible in the base field.