Cyclotomic polynomials. #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
For n : ℕ
and an integral domain R
, we define a modified version of the n
-th cyclotomic
polynomial with coefficients in R
, denoted cyclotomic' n R
, as ∏ (X - μ)
, where μ
varies
over the primitive n
th roots of unity. If there is a primitive n
th root of unity in R
then
this the standard definition. We then define the standard cyclotomic polynomial cyclotomic n R
with coefficients in any ring R
.
Main definition #
cyclotomic n R
: then
-th cyclotomic polynomial with coefficients inR
.
Main results #
polynomial.degree_cyclotomic
: The degree ofcyclotomic n
istotient n
.polynomial.prod_cyclotomic_eq_X_pow_sub_one
:X ^ n - 1 = ∏ (cyclotomic i)
, wherei
dividesn
.polynomial.cyclotomic_eq_prod_X_pow_sub_one_pow_moebius
: The Möbius inversion formula forcyclotomic n R
over an abstract fraction field forR[X]
.
Implementation details #
Our definition of cyclotomic' n R
makes sense in any integral domain R
, but the interesting
results hold if there is a primitive n
-th root of unity in R
. In particular, our definition is
not the standard one unless there is a primitive n
th root of unity in R
. For example,
cyclotomic' 3 ℤ = 1
, since there are no primitive cube roots of unity in ℤ
. The main example is
R = ℂ
, we decided to work in general since the difficulties are essentially the same.
To get the standard cyclotomic polynomials, we use int_coeff_of_cycl
, with R = ℂ
, to get a
polynomial with integer coefficients and then we map it to R[X]
, for any ring R
.
To prove cyclotomic.irreducible
, the irreducibility of cyclotomic n ℤ
, we show in
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
.
The modified n
-th cyclotomic polynomial with coefficients in R
, it is the usual cyclotomic
polynomial if there is a primitive n
-th root of unity in R
.
Equations
- polynomial.cyclotomic' n R = (primitive_roots n R).prod (λ (μ : R), polynomial.X - ⇑polynomial.C μ)
The zeroth modified cyclotomic polyomial is 1
.
The first modified cyclotomic polyomial is X - 1
.
The second modified cyclotomic polyomial is X + 1
if the characteristic of R
is not 2
.
cyclotomic' n R
is monic.
cyclotomic' n R
is different from 0
.
The natural degree of cyclotomic' n R
is totient n
if there is a primitive root of
unity in R
.
The degree of cyclotomic' n R
is totient n
if there is a primitive root of unity in R
.
The roots of cyclotomic' n R
are the primitive n
-th roots of unity.
If there is a primitive n
th root of unity in K
, then X ^ n - 1 = ∏ (X - μ)
, where μ
varies over the n
-th roots of unity.
cyclotomic' n K
splits.
If there is a primitive n
-th root of unity in K
, then X ^ n - 1
splits.
If there is a primitive n
-th root of unity in K
, then
∏ i in nat.divisors n, cyclotomic' i K = X ^ n - 1
.
If there is a primitive n
-th root of unity in K
, then
cyclotomic' n K = (X ^ k - 1) /ₘ (∏ i in nat.proper_divisors k, cyclotomic' i K)
.
If there is a primitive n
-th root of unity in K
, then cyclotomic' n K
comes from a
monic polynomial with integer coefficients.
If K
is of characteristic 0
and there is a primitive n
-th root of unity in K
,
then cyclotomic n K
comes from a unique polynomial with integer coefficients.
The n
-th cyclotomic polynomial with coefficients in R
.
Equations
- polynomial.cyclotomic n R = dite (n = 0) (λ (h : n = 0), 1) (λ (h : ¬n = 0), polynomial.map (int.cast_ring_hom R) _.some)
cyclotomic n R
comes from cyclotomic n ℤ
.
The definition of cyclotomic n R
commutes with any ring homomorphism.
The zeroth cyclotomic polyomial is 1
.
The first cyclotomic polyomial is X - 1
.
cyclotomic n
is monic.
cyclotomic n
is primitive.
cyclotomic n R
is different from 0
.
The degree of cyclotomic n
is totient n
.
The natural degree of cyclotomic n
is totient n
.
The degree of cyclotomic n R
is positive.
∏ i in nat.divisors n, cyclotomic i R = X ^ n - 1
.
If p
is prime, then cyclotomic p R = ∑ i in range p, X ^ i
.
cyclotomic n R
can be expressed as a product in a fraction field of R[X]
using Möbius inversion.
We have
cyclotomic n R = (X ^ k - 1) /ₘ (∏ i in nat.proper_divisors k, cyclotomic i K)
.
If m
is a proper divisor of n
, then X ^ m - 1
divides
∏ i in nat.proper_divisors n, cyclotomic i R
.
If there is a primitive n
-th root of unity in K
, then
cyclotomic n K = ∏ μ in primitive_roots n R, (X - C μ)
. In particular,
cyclotomic n K = cyclotomic' n K
If p ^ k
is a prime power, then
cyclotomic (p ^ (n + 1)) R = ∑ i in range p, (X ^ (p ^ n)) ^ i
.
The constant term of cyclotomic n R
is 1
if 2 ≤ n
.
If (a : ℕ)
is a root of cyclotomic n (zmod p)
, where p
is a prime, then a
and p
are
coprime.
If (a : ℕ)
is a root of cyclotomic n (zmod p)
, then the multiplicative order of a
modulo
p
divides n
.