Primitive roots in cyclotomic fields #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4. If
is_cyclotomic_extension {n} A B
, we define an elementzeta n A B : B
that is a primitiven
th-root of unity inB
and we study its properties. We also prove related theorems under the more general assumption of just being a primitive root, for reasons described in the implementation details section.
Main definitions #
is_cyclotomic_extension.zeta n A B
: ifis_cyclotomic_extension {n} A B
, thanzeta n A B
is a primitiven
-th root of unity inB
.is_primitive_root.power_basis
: ifK
andL
are fields such thatis_cyclotomic_extension {n} K L
, thenis_primitive_root.power_basis
gives a K-power basis for L given a primitive rootζ
.is_primitive_root.embeddings_equiv_primitive_roots
: the equivalence betweenL →ₐ[K] A
andprimitive_roots n A
given by the choice ofζ
.
Main results #
is_cyclotomic_extension.zeta_spec
:zeta n A B
is a primitiven
-th root of unity.is_cyclotomic_extension.finrank
: ifirreducible (cyclotomic n K)
(in particular forK = ℚ
), then thefinrank
of a cyclotomic extension isn.totient
.is_primitive_root.norm_eq_one
: ifirreducible (cyclotomic n K)
(in particular forK = ℚ
), the norm of a primitive root is1
ifn ≠ 2
.is_primitive_root.sub_one_norm_eq_eval_cyclotomic
: ifirreducible (cyclotomic n K)
(in particular forK = ℚ
), then the norm ofζ - 1
iseval 1 (cyclotomic n ℤ)
, for a primitive rootζ
. We also prove the analogous of this result forzeta
.is_primitive_root.pow_sub_one_norm_prime_pow_ne_two
: ifirreducible (cyclotomic (p ^ (k + 1)) K)
(in particular forK = ℚ
) andp
is a prime, then the norm ofζ ^ (p ^ s) - 1
isp ^ (p ^ s)
p ^ (k - s + 1) ≠ 2
. See the following lemmas for similar results. We also prove the analogous of this result forzeta
.is_primitive_root.sub_one_norm_prime_ne_two
: ifirreducible (cyclotomic (p ^ (k + 1)) K)
(in particular forK = ℚ
) andp
is an odd prime, then the norm ofζ - 1
isp
. We also prove the analogous of this result forzeta
.is_primitive_root.embeddings_equiv_primitive_roots
: the equivalence betweenL →ₐ[K] A
andprimitive_roots n A
given by the choice ofζ
.
Implementation details #
zeta n A B
is defined as any primitive root of unity in B
, - this must exist, by definition of
is_cyclotomic_extension
. It is not true in general that it is a root of cyclotomic n B
,
but this holds if is_domain B
and ne_zero (↑n : B)
.
zeta n A B
is defined using exists.some
, which means we cannot control it.
For example, in normal mathematics, we can demand that (zeta p ℤ ℤ[ζₚ] : ℚ(ζₚ))
is equal to
zeta p ℚ ℚ(ζₚ)
, as we are just choosing "an arbitrary primitive root" and we can internally
specify that our choices agree. This is not the case here, and it is indeed impossible to prove that
these two are equal. Therefore, whenever possible, we prove our results for any primitive root,
and only at the "final step", when we need to provide an "explicit" primitive root, we use zeta
.
If B
is a n
-th cyclotomic extension of A
, then zeta n A B
is a primitive root of
unity in B
.
Equations
- is_cyclotomic_extension.zeta n A B = _.some
zeta n A B
is a primitive n
-th root of unity.
The power_basis
given by a primitive root η
.
Equations
- is_primitive_root.power_basis K hζ = (algebra.adjoin.power_basis _).map (((algebra.adjoin K {ζ}).equiv_of_eq ⊤ _).trans subalgebra.top_equiv)
The power_basis
given by η - 1
.
Equations
The equivalence between L →ₐ[K] C
and primitive_roots n C
given by a primitive root ζ
.
Equations
- hζ.embeddings_equiv_primitive_roots C hirr = (is_primitive_root.power_basis K hζ).lift_equiv.trans {to_fun := λ (x : {y // ⇑(polynomial.aeval y) (minpoly K (is_primitive_root.power_basis K hζ).gen) = 0}), ⟨x.val, _⟩, inv_fun := λ (x : ↥(primitive_roots ↑n C)), ⟨x.val, _⟩, left_inv := _, right_inv := _}
If irreducible (cyclotomic n K)
(in particular for K = ℚ
), then the finrank
of a
cyclotomic extension is n.totient
.
This mathematically trivial result is complementary to norm_eq_one
below.
If irreducible (cyclotomic n K)
(in particular for K = ℚ
), the norm of a primitive root is
1
if n ≠ 2
.
If K
is linearly ordered, the norm of a primitive root is 1
if n
is odd.
If irreducible (cyclotomic n K)
(in particular for K = ℚ
), then the norm of
ζ - 1
is eval 1 (cyclotomic n ℤ)
.
If is_prime_pow (n : ℕ)
, n ≠ 2
and irreducible (cyclotomic n K)
(in particular for
K = ℚ
), then the norm of ζ - 1
is (n : ℕ).min_fac
.
If irreducible (cyclotomic (p ^ (k + 1)) K)
(in particular for K = ℚ
) and p
is a prime,
then the norm of ζ ^ (p ^ s) - 1
is p ^ (p ^ s)
if p ^ (k - s + 1) ≠ 2
. See the next lemmas
for similar results.
If irreducible (cyclotomic (p ^ (k + 1)) K)
(in particular for K = ℚ
) and p
is a prime,
then the norm of ζ ^ (p ^ s) - 1
is p ^ (p ^ s)
if p ≠ 2
.
If irreducible (cyclotomic (p ^ (k + 1)) K)
(in particular for K = ℚ
) and p
is an odd
prime, then the norm of ζ - 1
is p
.
If irreducible (cyclotomic p K)
(in particular for K = ℚ
) and p
is an odd prime,
then the norm of ζ - 1
is p
.
If irreducible (cyclotomic (2 ^ (k + 1)) K)
(in particular for K = ℚ
), then the norm of
ζ ^ (2 ^ k) - 1
is (-2) ^ (2 ^ k)
.
If irreducible (cyclotomic (2 ^ k) K)
(in particular for K = ℚ
) and k
is at least 2
,
then the norm of ζ - 1
is 2
.
If irreducible (cyclotomic (p ^ (k + 1)) K)
(in particular for K = ℚ
) and p
is a prime,
then the norm of ζ ^ (p ^ s) - 1
is p ^ (p ^ s)
if k ≠ 0
and s ≤ k
.
If irreducible (cyclotomic n K)
(in particular for K = ℚ
), the norm of zeta n K L
is 1
if n
is odd.
If is_prime_pow (n : ℕ)
, n ≠ 2
and irreducible (cyclotomic n K)
(in particular for
K = ℚ
), then the norm of zeta n K L - 1
is (n : ℕ).min_fac
.
If irreducible (cyclotomic (p ^ (k + 1)) K)
(in particular for K = ℚ
) and p
is a prime,
then the norm of (zeta (p ^ (k + 1)) K L) ^ (p ^ s) - 1
is p ^ (p ^ s)
if p ^ (k - s + 1) ≠ 2
.
If irreducible (cyclotomic (p ^ (k + 1)) K)
(in particular for K = ℚ
) and p
is an odd
prime, then the norm of zeta (p ^ (k + 1)) K L - 1
is p
.
If irreducible (cyclotomic p K)
(in particular for K = ℚ
) and p
is an odd prime,
then the norm of zeta p K L - 1
is p
.
If irreducible (cyclotomic (2 ^ k) K)
(in particular for K = ℚ
) and k
is at least 2
,
then the norm of zeta (2 ^ k) K L - 1
is 2
.