mathlib3 documentation

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 #

theorem is_primitive_root.is_integral {n : } {K : Type u_1} [comm_ring K] {μ : K} (h : is_primitive_root μ n) (hpos : 0 < n) :

μ is integral over .

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 : is_primitive_root μ 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 separable.

theorem is_primitive_root.squarefree_minpoly_mod {n : } {K : Type u_1} [comm_ring K] {μ : K} (h : is_primitive_root μ 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 : is_primitive_root μ n) [is_domain K] [char_zero K] {p : } (hdiv : ¬p n) :
theorem is_primitive_root.minpoly_dvd_pow_mod {n : } {K : Type u_1} [comm_ring K] {μ : K} (h : is_primitive_root μ n) [is_domain K] [char_zero K] {p : } [hprime : fact (nat.prime p)] (hdiv : ¬p n) :
theorem is_primitive_root.minpoly_dvd_mod_p {n : } {K : Type u_1} [comm_ring K] {μ : K} (h : is_primitive_root μ n) [is_domain K] [char_zero K] {p : } [hprime : fact (nat.prime p)] (hdiv : ¬p n) :
theorem is_primitive_root.minpoly_eq_pow {n : } {K : Type u_1} [comm_ring K] {μ : K} (h : is_primitive_root μ n) [is_domain K] [char_zero K] {p : } [hprime : fact (nat.prime p)] (hdiv : ¬p n) :
minpoly μ = minpoly ^ 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 : is_primitive_root μ n) [is_domain K] [char_zero K] {m : } (hcop : m.coprime n) :
minpoly μ = minpoly ^ 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 : is_primitive_root μ n) [is_domain K] [char_zero K] {m : } (hcop : m.coprime n) :

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

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

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