mathlib documentation

number_theory.cyclotomic.primitive_roots

Primitive roots in cyclotomic fields #

If is_cyclotomic_extension {n} A B, we define an element zeta n A B : B that is (under certain assumptions) a primitive n-root of unity in B 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 #

Main results #

Implementation details #

zeta n A B is defined as any root of cyclotomic n A in B, that exists because of is_cyclotomic_extension {n} A B. It is not true in general that it is a primitive n-th root of unity, 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.

noncomputable def is_cyclotomic_extension.zeta (n : ℕ+) (A : Type w) (B : Type z) [comm_ring A] [comm_ring B] [algebra A B] [is_cyclotomic_extension {n} A B] :
B

If B is a n-th cyclotomic extension of A, then zeta n A B is any root of cyclotomic n A in L.

Equations
theorem is_cyclotomic_extension.zeta_pow (n : ℕ+) (A : Type w) (B : Type z) [comm_ring A] [comm_ring B] [algebra A B] [is_cyclotomic_extension {n} A B] :

If is_domain B and ne_zero (↑n : B) then zeta n A B is a primitive n-th root of unity.

@[simp]
theorem is_primitive_root.power_basis_dim {n : ℕ+} (K : Type u) {L : Type v} [field K] [field L] [algebra K L] [is_cyclotomic_extension {n} K L] {ζ : L} (hζ : is_primitive_root ζ n) :
noncomputable def is_primitive_root.power_basis {n : ℕ+} (K : Type u) {L : Type v} [field K] [field L] [algebra K L] [is_cyclotomic_extension {n} K L] {ζ : L} (hζ : is_primitive_root ζ n) :

The power_basis given by a primitive root ζ.

Equations
@[simp]
theorem is_primitive_root.power_basis_gen {n : ℕ+} (K : Type u) {L : Type v} [field K] [field L] [algebra K L] [is_cyclotomic_extension {n} K L] {ζ : L} (hζ : is_primitive_root ζ n) :
noncomputable def is_primitive_root.embeddings_equiv_primitive_roots {n : ℕ+} {K : Type u} {L : Type v} (C : Type w) [field K] [field L] [comm_ring C] [algebra K L] [algebra K C] [is_cyclotomic_extension {n} K L] {ζ : L} (hζ : is_primitive_root ζ n) [is_domain C] [ne_zero n] (hirr : irreducible (polynomial.cyclotomic n K)) :

The equivalence between L →ₐ[K] A and primitive_roots n A given by a primitive root ζ.

Equations
@[simp]
theorem is_primitive_root.embeddings_equiv_primitive_roots_symm_apply_apply {n : ℕ+} {K : Type u} {L : Type v} (C : Type w) [field K] [field L] [comm_ring C] [algebra K L] [algebra K C] [is_cyclotomic_extension {n} K L] {ζ : L} (hζ : is_primitive_root ζ n) [is_domain C] [ne_zero n] (hirr : irreducible (polynomial.cyclotomic n K)) (ᾰ : (primitive_roots n C)) (ᾰ_1 : L) :
@[simp]
theorem is_primitive_root.embeddings_equiv_primitive_roots_apply_coe {n : ℕ+} {K : Type u} {L : Type v} (C : Type w) [field K] [field L] [comm_ring C] [algebra K L] [algebra K C] [is_cyclotomic_extension {n} K L] {ζ : L} (hζ : is_primitive_root ζ n) [is_domain C] [ne_zero n] (hirr : irreducible (polynomial.cyclotomic n K)) (ᾰ : L →ₐ[K] C) :

If irreducible (cyclotomic n K) (in particular for K = ℚ), then the finrank of a cyclotomic extension is n.totient.

theorem is_primitive_root.norm_eq_one {n : ℕ+} (K : Type u) {L : Type v} [field L] {ζ : L} (hζ : is_primitive_root ζ n) [linear_ordered_field K] [algebra K L] (hodd : odd n) :

If K is linearly ordered (in particular for K = ℚ), the norm of a primitive root is 1 if n is odd.

theorem is_primitive_root.sub_one_norm_eq_eval_cyclotomic {n : ℕ+} {K : Type u} {L : Type v} [field L] {ζ : L} (hζ : is_primitive_root ζ n) [field K] [algebra K L] [is_cyclotomic_extension {n} K L] [ne_zero n] (h : 2 < n) (hirr : irreducible (polynomial.cyclotomic n K)) :

If irreducible (cyclotomic n K) (in particular for K = ℚ), then the norm of ζ - 1 is eval 1 (cyclotomic n ℤ).