Cyclotomic polynomials: size of Φ_n(x) and the parity of ω(n) (Jameson, Prop. 1.20) #
For n ≥ 2 and real 0 < x ≤ 1/2, Φ_n(x) lies in (1 - x, 1) when n has an even number of
distinct prime factors and in (1, 1/(1 - x)) when it has an odd number. Via the palindromy
X^φ(n) Φ_n(1/X) = Φ_n(X) (proved here as reverse_cyclotomic), the matching bounds around
x^φ(n) hold for x ≥ 2.
Main results #
CycloParity.cyclotomic_eval_parity: n ≥ 2, 0 < x ≤ 1/2: ω(n) even ⇒ 1 - x < Φ_n(x) < 1; odd ⇒ 1 < Φ_n(x) < 1/(1-x)CycloParity.cyclotomic_eval_lt_one_of_even: ω(n) even ⇒ Φ_n(x) < 1 for 0 < x ≤ 1/2CycloParity.one_lt_cyclotomic_eval_of_odd: ω(n) odd ⇒ 1 < Φ_n(x) for 0 < x ≤ 1/2CycloParity.reverse_cyclotomic: Φ_n is palindromic over ℝ for n ≥ 2CycloParity.cyclotomic_eval_reciprocal: Φ_n(x) = x^φ(n) Φ_n(1/x) for n ≥ 2, x ≠ 0CycloParity.cyclotomic_eval_parity_ge_two: n ≥ 2, x ≥ 2: ω(n) even ⇒ (x-1)x^(φ-1) < Φ_n(x) < x^φ; odd ⇒ x^φ < Φ_n(x) < x^(φ+1)/(x-1)
References #
- R. Whitty, Theorem of the Day, «The Bungers–Lehmer Theorem on Cyclotomic Coefficients» (Cyclotomic).
- G. J. O. Jameson, «The cyclotomic polynomials», lecture notes (Lancaster University), §1: Proposition 1.20 and Proposition 1.3 (palindromy).
theorem
CycloParity.eval_cyclotomic_moebius
(x : ℝ)
(hx0 : 0 < x)
(hx1 : x < 1)
(n : ℕ)
(hn : 0 < n)
:
Polynomial.eval x (Polynomial.cyclotomic n ℝ) = ∏ d ∈ n.divisors, (x ^ d - 1) ^ ArithmeticFunction.moebius (n / d)
Möbius inversion for the real evaluation of Φ_n.
theorem
CycloParity.main_squarefree
(x : ℝ)
(hx0 : 0 < x)
(hx2 : x ≤ 1 / 2)
(n : ℕ)
(hn : Squarefree n)
(hn1 : 2 ≤ n)
:
(ArithmeticFunction.moebius n = 1 →
1 - x < Polynomial.eval x (Polynomial.cyclotomic n ℝ) ∧ Polynomial.eval x (Polynomial.cyclotomic n ℝ) < 1) ∧ (ArithmeticFunction.moebius n = -1 →
1 < Polynomial.eval x (Polynomial.cyclotomic n ℝ) ∧ Polynomial.eval x (Polynomial.cyclotomic n ℝ) < 1 / (1 - x))
Squarefree case of Jameson 1.20.
theorem
CycloParity.cyclotomic_eval_parity
(n : ℕ)
(hn : 2 ≤ n)
(x : ℝ)
(hx0 : 0 < x)
(hx2 : x ≤ 1 / 2)
:
(Even n.primeFactors.card →
1 - x < Polynomial.eval x (Polynomial.cyclotomic n ℝ) ∧ Polynomial.eval x (Polynomial.cyclotomic n ℝ) < 1) ∧ (Odd n.primeFactors.card →
1 < Polynomial.eval x (Polynomial.cyclotomic n ℝ) ∧ Polynomial.eval x (Polynomial.cyclotomic n ℝ) < 1 / (1 - x))
Jameson, Proposition 1.20 for 0 < x ≤ 1/2: both parities, all n ≥ 2.
theorem
CycloParity.cyclotomic_eval_lt_one_of_even
(n : ℕ)
(hn : 2 ≤ n)
(x : ℝ)
(hx0 : 0 < x)
(hx2 : x ≤ 1 / 2)
(he : Even n.primeFactors.card)
:
1 - x < Polynomial.eval x (Polynomial.cyclotomic n ℝ) ∧ Polynomial.eval x (Polynomial.cyclotomic n ℝ) < 1
theorem
CycloParity.one_lt_cyclotomic_eval_of_odd
(n : ℕ)
(hn : 2 ≤ n)
(x : ℝ)
(hx0 : 0 < x)
(hx2 : x ≤ 1 / 2)
(ho : Odd n.primeFactors.card)
:
1 < Polynomial.eval x (Polynomial.cyclotomic n ℝ) ∧ Polynomial.eval x (Polynomial.cyclotomic n ℝ) < 1 / (1 - x)
Reciprocity and the part x ≥ 2 #
Polynomial reciprocity: reverse Φ_n = Φ_n for n ≥ 2.
theorem
CycloParity.cyclotomic_eval_reciprocal
(n : ℕ)
(hn : 2 ≤ n)
(x : ℝ)
(hx : x ≠ 0)
:
Polynomial.eval x (Polynomial.cyclotomic n ℝ) = x ^ n.totient * Polynomial.eval (1 / x) (Polynomial.cyclotomic n ℝ)
Reciprocity evaluated: Φ_n(x) = x^φ(n) Φ_n(1/x) for n ≥ 2, x ≠ 0.
theorem
CycloParity.cyclotomic_eval_parity_ge_two
(n : ℕ)
(hn : 2 ≤ n)
(x : ℝ)
(hx : 2 ≤ x)
:
(Even n.primeFactors.card →
(x - 1) * x ^ (n.totient - 1) < Polynomial.eval x (Polynomial.cyclotomic n ℝ) ∧ Polynomial.eval x (Polynomial.cyclotomic n ℝ) < x ^ n.totient) ∧ (Odd n.primeFactors.card →
x ^ n.totient < Polynomial.eval x (Polynomial.cyclotomic n ℝ) ∧ Polynomial.eval x (Polynomial.cyclotomic n ℝ) < x ^ (n.totient + 1) / (x - 1))
Jameson, Proposition 1.20 for x ≥ 2, m = φ(n), n ≥ 2.