mathlib3documentation

ring_theory.polynomial.cyclotomic.roots

Roots of cyclotomic polynomials. #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

We gather results about roots of cyclotomic polynomials. In particular we show in polynomial.cyclotomic_eq_minpoly that cyclotomic n R is the minimal polynomial of a primitive root of unity.

Main results #

• is_primitive_root.is_root_cyclotomic : Any n-th primitive root of unity is a root of cyclotomic n R.
• is_root_cyclotomic_iff : if ne_zero (n : R), then μ is a root of cyclotomic n R if and only if μ is a primitive root of unity.
• polynomial.cyclotomic_eq_minpoly : cyclotomic n ℤ is the minimal polynomial of a primitive n-th root of unity μ.
• polynomial.cyclotomic.irreducible : cyclotomic n ℤ is irreducible.

Implementation details #

To prove polynomial.cyclotomic.irreducible, the irreducibility of cyclotomic n ℤ, we show in polynomial.cyclotomic_eq_minpoly that cyclotomic n ℤ is the minimal polynomial of any n-th primitive root of unity μ : K, where K is a field of characteristic 0.

theorem polynomial.is_root_of_unity_of_root_cyclotomic {R : Type u_1} [comm_ring R] {n : } {ζ : R} {i : } (hi : i n.divisors) (h : .is_root ζ) :
ζ ^ n = 1
theorem is_root_of_unity_iff {n : } (h : 0 < n) (R : Type u_1) [comm_ring R] [is_domain R] {ζ : R} :
ζ ^ n = 1 (i : ) (H : i n.divisors), .is_root ζ
theorem is_primitive_root.is_root_cyclotomic {R : Type u_1} [comm_ring R] {n : } [is_domain R] (hpos : 0 < n) {μ : R} (h : n) :

Any n-th primitive root of unity is a root of cyclotomic n R.

theorem polynomial.is_root_cyclotomic_iff {R : Type u_1} [comm_ring R] {n : } [is_domain R] [ne_zero n] {μ : R} :
theorem polynomial.is_root_cyclotomic_iff_char_zero {n : } {R : Type u_1} [comm_ring R] [is_domain R] [char_zero R] {μ : R} (hn : 0 < n) :

If R is of characteristic zero, then ζ is a root of cyclotomic n R if and only if it is a primitive n-th root of unity.

Over a ring R of characteristic zero, λ n, cyclotomic n R is injective.

theorem is_primitive_root.minpoly_dvd_cyclotomic {n : } {K : Type u_1} [field K] {μ : K} (h : n) (hpos : 0 < n) [char_zero K] :

The minimal polynomial of a primitive n-th root of unity μ divides cyclotomic n ℤ.

theorem is_primitive_root.minpoly_eq_cyclotomic_of_irreducible {K : Type u_1} [field K] {R : Type u_2} [comm_ring R] [is_domain R] {μ : R} {n : } [ R] (hμ : n) (h : irreducible ) [ne_zero n] :
= μ
theorem polynomial.cyclotomic_eq_minpoly {n : } {K : Type u_1} [field K] {μ : K} (h : n) (hpos : 0 < n) [char_zero K] :

cyclotomic n ℤ is the minimal polynomial of a primitive n-th root of unity μ.

theorem polynomial.cyclotomic_eq_minpoly_rat {n : } {K : Type u_1} [field K] {μ : K} (h : n) (hpos : 0 < n) [char_zero K] :

cyclotomic n ℚ is the minimal polynomial of a primitive n-th root of unity μ.

theorem polynomial.cyclotomic.irreducible {n : } (hpos : 0 < n) :

cyclotomic n ℤ is irreducible.

theorem polynomial.cyclotomic.irreducible_rat {n : } (hpos : 0 < n) :

cyclotomic n ℚ is irreducible.

theorem polynomial.cyclotomic.is_coprime_rat {n m : } (h : n m) :

If n ≠ m, then (cyclotomic n ℚ) and (cyclotomic m ℚ) are coprime.