HepLean Documentation

Mathlib.RingTheory.Polynomial.Cyclotomic.Roots

Roots of cyclotomic polynomials. #

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 #

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.isRoot_of_unity_of_root_cyclotomic {R : Type u_1} [CommRing R] {n : } {ζ : R} {i : } (hi : i n.divisors) (h : (Polynomial.cyclotomic i R).IsRoot ζ) :
ζ ^ n = 1
theorem isRoot_of_unity_iff {n : } (h : 0 < n) (R : Type u_2) [CommRing R] [IsDomain R] {ζ : R} :
ζ ^ n = 1 in.divisors, (Polynomial.cyclotomic i R).IsRoot ζ
theorem IsPrimitiveRoot.isRoot_cyclotomic {R : Type u_1} [CommRing R] {n : } [IsDomain R] (hpos : 0 < n) {μ : R} (h : IsPrimitiveRoot μ n) :
(Polynomial.cyclotomic n R).IsRoot μ

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

theorem Polynomial.isRoot_cyclotomic_iff {R : Type u_1} [CommRing R] {n : } [IsDomain R] [NeZero n] {μ : R} :
theorem Polynomial.roots_cyclotomic_nodup {R : Type u_1} [CommRing R] {n : } [IsDomain R] [NeZero n] :
(Polynomial.cyclotomic n R).roots.Nodup
theorem Polynomial.cyclotomic.roots_to_finset_eq_primitiveRoots {R : Type u_1} [CommRing R] {n : } [IsDomain R] [NeZero n] :
{ val := (Polynomial.cyclotomic n R).roots, nodup := } = primitiveRoots n R
theorem Polynomial.isRoot_cyclotomic_iff_charZero {n : } {R : Type u_2} [CommRing R] [IsDomain R] [CharZero 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, fun n => cyclotomic n R is injective.

theorem IsPrimitiveRoot.minpoly_dvd_cyclotomic {n : } {K : Type u_2} [Field K] {μ : K} (h : IsPrimitiveRoot μ n) (hpos : 0 < n) [CharZero K] :

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

theorem Polynomial.cyclotomic_eq_minpoly {n : } {K : Type u_2} [Field K] {μ : K} (h : IsPrimitiveRoot μ n) (hpos : 0 < n) [CharZero 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_2} [Field K] {μ : K} (h : IsPrimitiveRoot μ n) (hpos : 0 < n) [CharZero K] :

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

cyclotomic n ℤ is irreducible.

cyclotomic n ℚ is irreducible.

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