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 n
th cyclotomic polynomial is irreducible, they are isomorphic.
Main results #
is_primitive_root.aut_to_pow_injective
:is_primitive_root.aut_to_pow
is injective in the case that it's considered over a cyclotomic field extension.is_cyclotomic_extension.aut_equiv_pow
: If then
th cyclotomic polynomial is irreducible inK
, thenis_primitive_root.aut_to_pow
is amul_equiv
(for example, inℚ
and certain𝔽ₚ
).gal_X_pow_equiv_units_zmod
,gal_cyclotomic_equiv_units_zmod
: Repackageis_cyclotomic_extension.aut_equiv_pow
in terms ofpolynomial.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.