# mathlib3documentation

ring_theory.roots_of_unity.minpoly

# Minimal polynomial of roots of unity #

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

We gather several results about minimal polynomial of root of unity.

## Main results #

• is_primitive_root.totient_le_degree_minpoly: The degree of the minimal polynomial of a n-th primitive root of unity is at least totient n.
theorem is_primitive_root.is_integral {n : } {K : Type u_1} [comm_ring K] {μ : K} (h : n) (hpos : 0 < n) :

μ is integral over ℤ.

theorem is_primitive_root.minpoly_dvd_X_pow_sub_one {n : } {K : Type u_1} [comm_ring K] {μ : K} (h : n) [is_domain K] [char_zero K] :
μ - 1

The minimal polynomial of a root of unity μ divides X ^ n - 1.

theorem is_primitive_root.separable_minpoly_mod {n : } {K : Type u_1} [comm_ring K] {μ : K} (h : n) [is_domain K] [char_zero K] {p : } [fact (nat.prime p)] (hdiv : ¬p n) :
μ)).separable

The reduction modulo p of the minimal polynomial of a root of unity μ is separable.

theorem is_primitive_root.squarefree_minpoly_mod {n : } {K : Type u_1} [comm_ring K] {μ : K} (h : n) [is_domain K] [char_zero K] {p : } [fact (nat.prime p)] (hdiv : ¬p n) :

The reduction modulo p of the minimal polynomial of a root of unity μ is squarefree.

theorem is_primitive_root.minpoly_dvd_expand {n : } {K : Type u_1} [comm_ring K] {μ : K} (h : n) [is_domain K] [char_zero K] {p : } (hdiv : ¬p n) :
μ ^ p))
theorem is_primitive_root.minpoly_dvd_pow_mod {n : } {K : Type u_1} [comm_ring K] {μ : K} (h : n) [is_domain K] [char_zero K] {p : } [hprime : fact (nat.prime p)] (hdiv : ¬p n) :
μ) ^ p)) ^ p
theorem is_primitive_root.minpoly_dvd_mod_p {n : } {K : Type u_1} [comm_ring K] {μ : K} (h : n) [is_domain K] [char_zero K] {p : } [hprime : fact (nat.prime p)] (hdiv : ¬p n) :
μ) ^ p))
theorem is_primitive_root.minpoly_eq_pow {n : } {K : Type u_1} [comm_ring K] {μ : K} (h : n) [is_domain K] [char_zero K] {p : } [hprime : fact (nat.prime p)] (hdiv : ¬p n) :
μ = ^ p)

If p is a prime that does not divide n, then the minimal polynomials of a primitive n-th root of unity μ and of μ ^ p are the same.

theorem is_primitive_root.minpoly_eq_pow_coprime {n : } {K : Type u_1} [comm_ring K] {μ : K} (h : n) [is_domain K] [char_zero K] {m : } (hcop : m.coprime n) :
μ = ^ m)

If m : ℕ is coprime with n, then the minimal polynomials of a primitive n-th root of unity μ and of μ ^ m are the same.

theorem is_primitive_root.pow_is_root_minpoly {n : } {K : Type u_1} [comm_ring K] {μ : K} (h : n) [is_domain K] [char_zero K] {m : } (hcop : m.coprime n) :
μ)).is_root ^ m)

If m : ℕ is coprime with n, then the minimal polynomial of a primitive n-th root of unity μ has μ ^ m as root.

theorem is_primitive_root.is_roots_of_minpoly {n : } {K : Type u_1} [comm_ring K] {μ : K} (h : n) [is_domain K] [char_zero K] [decidable_eq K] :

primitive_roots n K is a subset of the roots of the minimal polynomial of a primitive n-th root of unity μ.

theorem is_primitive_root.totient_le_degree_minpoly {n : } {K : Type u_1} [comm_ring K] {μ : K} (h : n) [is_domain K] [char_zero K] :

The degree of the minimal polynomial of μ is at least totient n.