File: Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean

full_name: Polynomial.eval_one_cyclotomic_prime
code: @[simp]
theorem eval_one_cyclotomic_prime {R : Type*} [CommRing R] {p : ℕ} [hn : Fact p.Prime] :
    eval 1 (cyclotomic p R) = p 
goal: Polynomial.eval 1 (Polynomial.cyclotomic p R) = ↑p

full_name: Polynomial.eval₂_one_cyclotomic_prime
code: theorem eval₂_one_cyclotomic_prime {R S : Type*} [CommRing R] [Semiring S] (f : R →+* S) {p : ℕ}
    [Fact p.Prime] : eval₂ f 1 (cyclotomic p R) = p 
goal: Polynomial.eval₂ f 1 (Polynomial.cyclotomic p R) = ↑p

full_name: Polynomial.eval_one_cyclotomic_prime_pow
code: @[simp]
theorem eval_one_cyclotomic_prime_pow {R : Type*} [CommRing R] {p : ℕ} (k : ℕ)
    [hn : Fact p.Prime] : eval 1 (cyclotomic (p ^ (k + 1)) R) = p 
goal: Polynomial.eval 1 (Polynomial.cyclotomic (p ^ (k + 1)) R) = ↑p

full_name: Polynomial.eval₂_one_cyclotomic_prime_pow
code: theorem eval₂_one_cyclotomic_prime_pow {R S : Type*} [CommRing R] [Semiring S] (f : R →+* S)
    {p : ℕ} (k : ℕ) [Fact p.Prime] : eval₂ f 1 (cyclotomic (p ^ (k + 1)) R) = p 
goal: Polynomial.eval₂ f 1 (Polynomial.cyclotomic (p ^ (k + 1)) R) = ↑p

full_name: _private.Mathlib.RingTheory.Polynomial.Cyclotomic.Eval.0.Polynomial.cyclotomic_neg_one_pos
code: private theorem cyclotomic_neg_one_pos {n : ℕ} (hn : 2 < n) {R} [LinearOrderedCommRing R] :
    0 < eval (-1 : R) (cyclotomic n R) 
goal: 0 < Polynomial.eval (-1) (Polynomial.cyclotomic n R)

full_name: Polynomial.cyclotomic_pos
code: theorem cyclotomic_pos {n : ℕ} (hn : 2 < n) {R} [LinearOrderedCommRing R] (x : R) :
    0 < eval x (cyclotomic n R) 
goal: 0 < Polynomial.eval x (Polynomial.cyclotomic n R)

full_name: Polynomial.cyclotomic_pos_and_nonneg
code: theorem cyclotomic_pos_and_nonneg (n : ℕ) {R} [LinearOrderedCommRing R] (x : R) :
    (1 < x → 0 < eval x (cyclotomic n R)) ∧ (1 ≤ x → 0 ≤ eval x (cyclotomic n R)) 
goal: (1 < x → 0 < Polynomial.eval x (Polynomial.cyclotomic n R)) ∧
  (1 ≤ x → 0 ≤ Polynomial.eval x (Polynomial.cyclotomic n R))

full_name: Polynomial.cyclotomic_pos'
code: /-- Cyclotomic polynomials are always positive on inputs larger than one.
Similar to `cyclotomic_pos` but with the condition on the input rather than index of the
cyclotomic polynomial. -/
theorem cyclotomic_pos' (n : ℕ) {R} [LinearOrderedCommRing R] {x : R} (hx : 1 < x) :
    0 < eval x (cyclotomic n R) 
goal: 0 < Polynomial.eval x (Polynomial.cyclotomic n R)

full_name: Polynomial.cyclotomic_nonneg
code: /-- Cyclotomic polynomials are always nonnegative on inputs one or more. -/
theorem cyclotomic_nonneg (n : ℕ) {R} [LinearOrderedCommRing R] {x : R} (hx : 1 ≤ x) :
    0 ≤ eval x (cyclotomic n R) 
goal: 0 ≤ Polynomial.eval x (Polynomial.cyclotomic n R)

full_name: Polynomial.eval_one_cyclotomic_not_prime_pow
code: theorem eval_one_cyclotomic_not_prime_pow {R : Type*} [Ring R] {n : ℕ}
    (h : ∀ {p : ℕ}, p.Prime → ∀ k : ℕ, p ^ k ≠ n) : eval 1 (cyclotomic n R) = 1 
goal: Polynomial.eval 1 (Polynomial.cyclotomic n R) = 1

full_name: Polynomial.sub_one_pow_totient_lt_cyclotomic_eval
code: theorem sub_one_pow_totient_lt_cyclotomic_eval {n : ℕ} {q : ℝ} (hn' : 2 ≤ n) (hq' : 1 < q) :
    (q - 1) ^ totient n < (cyclotomic n ℝ).eval q 
goal: (q - 1) ^ n.totient < Polynomial.eval q (Polynomial.cyclotomic n ℝ)

full_name: Polynomial.sub_one_pow_totient_le_cyclotomic_eval
code: theorem sub_one_pow_totient_le_cyclotomic_eval {q : ℝ} (hq' : 1 < q) :
    ∀ n, (q - 1) ^ totient n ≤ (cyclotomic n ℝ).eval q
  
goal: (q - 1) ^ n.totient ≤ Polynomial.eval q (Polynomial.cyclotomic n ℝ)

full_name: Polynomial.cyclotomic_eval_lt_add_one_pow_totient
code: theorem cyclotomic_eval_lt_add_one_pow_totient {n : ℕ} {q : ℝ} (hn' : 3 ≤ n) (hq' : 1 < q) :
    (cyclotomic n ℝ).eval q < (q + 1) ^ totient n 
goal: Polynomial.eval q (Polynomial.cyclotomic n ℝ) < (q + 1) ^ n.totient

full_name: Polynomial.cyclotomic_eval_le_add_one_pow_totient
code: theorem cyclotomic_eval_le_add_one_pow_totient {q : ℝ} (hq' : 1 < q) :
    ∀ n, (cyclotomic n ℝ).eval q ≤ (q + 1) ^ totient n
  
goal: Polynomial.eval q (Polynomial.cyclotomic n ℝ) ≤ (q + 1) ^ n.totient

full_name: Polynomial.sub_one_pow_totient_lt_natAbs_cyclotomic_eval
code: theorem sub_one_pow_totient_lt_natAbs_cyclotomic_eval {n : ℕ} {q : ℕ} (hn' : 1 < n) (hq : q ≠ 1) :
    (q - 1) ^ totient n < ((cyclotomic n ℤ).eval ↑q).natAbs 
goal: (q - 1) ^ n.totient < (Polynomial.eval (↑q) (Polynomial.cyclotomic n ℤ)).natAbs

full_name: Polynomial.sub_one_lt_natAbs_cyclotomic_eval
code: theorem sub_one_lt_natAbs_cyclotomic_eval {n : ℕ} {q : ℕ} (hn' : 1 < n) (hq : q ≠ 1) :
    q - 1 < ((cyclotomic n ℤ).eval ↑q).natAbs 
goal: q - 1 < (Polynomial.eval (↑q) (Polynomial.cyclotomic n ℤ)).natAbs