ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Polynomial.toFinsupp_neg
@[simp]
theorem toFinsupp_neg {R : Type u} [Ring R] (a : R[X]) : (-a).toFinsupp = -a.toFinsupp 
Arguments: {R : Type u} [Ring R] (a : R[X])
Goal: (-a).toFinsupp = -a.toFinsupp
-- Polynomial.toFinsupp_sub
@[simp]
theorem toFinsupp_sub {R : Type u} [Ring R] (a b : R[X]) :
    (a - b).toFinsupp = a.toFinsupp - b.toFinsupp 
Arguments: {R : Type u} [Ring R] (a b : R[X])
Goal: (a - b).toFinsupp = a.toFinsupp - b.toFinsupp
-- Polynomial.toFinsupp_mul
@[simp]
theorem toFinsupp_mul (a b : R[X]) : (a * b).toFinsupp = a.toFinsupp * b.toFinsupp 
Arguments: {R : Type u} [Semiring R] (a b : R[X])
Goal: (a * b).toFinsupp = a.toFinsupp * b.toFinsupp
-- Polynomial.toFinsupp_smul
@[simp]
theorem toFinsupp_smul {S : Type*} [SMulZeroClass S R] (a : S) (b : R[X]) :
    (a • b).toFinsupp = a • b.toFinsupp 
Arguments: {R : Type u} [Semiring R] {S : Type u_1} [SMulZeroClass S R] (a : S) (b : R[X])
Goal: (a • b).toFinsupp = a • b.toFinsupp
-- Polynomial.toFinsupp_pow
@[simp]
theorem toFinsupp_pow (a : R[X]) (n : ℕ) : (a ^ n).toFinsupp = a.toFinsupp ^ n 
Arguments: {R : Type u} [Semiring R] (a : R[X]) (n : ℕ)
Goal: (a ^ n).toFinsupp = a.toFinsupp ^ n
-- IsSMulRegular.polynomial
theorem _root_.IsSMulRegular.polynomial {S : Type*} [Monoid S] [DistribMulAction S R] {a : S}
    (ha : IsSMulRegular R a) : IsSMulRegular R[X] a
  
Arguments: {R : Type u} [Semiring R] {S : Type u_1} [Monoid S] [DistribMulAction S R] {a : S} (ha : IsSMulRegular R a)
Goal: IsSMulRegular R[X] a
-- Polynomial.toFinsupp_injective
theorem toFinsupp_injective : Function.Injective (toFinsupp : R[X] → AddMonoidAlgebra _ _) 
Arguments: {R : Type u} [Semiring R]
Goal: Function.Injective Polynomial.toFinsupp
-- Polynomial.toFinsupp_inj
@[simp]
theorem toFinsupp_inj {a b : R[X]} : a.toFinsupp = b.toFinsupp ↔ a = b 
Arguments: {R : Type u} [Semiring R] {a b : R[X]}
Goal: a.toFinsupp = b.toFinsupp ↔ a = b
-- Polynomial.toFinsupp_eq_zero
@[simp]
theorem toFinsupp_eq_zero {a : R[X]} : a.toFinsupp = 0 ↔ a = 0 
Arguments: {R : Type u} [Semiring R] {a : R[X]}
Goal: a.toFinsupp = 0 ↔ a = 0
-- Polynomial.toFinsupp_eq_one
@[simp]
theorem toFinsupp_eq_one {a : R[X]} : a.toFinsupp = 1 ↔ a = 1 
Arguments: {R : Type u} [Semiring R] {a : R[X]}
Goal: a.toFinsupp = 1 ↔ a = 1
-- Polynomial.ofFinsupp_inj
theorem ofFinsupp_inj {a b} : (⟨a⟩ : R[X]) = ⟨b⟩ ↔ a = b 
Arguments: {R : Type u} [Semiring R] {a b : R[ℕ]}
Goal: { toFinsupp := a } = { toFinsupp := b } ↔ a = b
-- Polynomial.ofFinsupp_eq_zero
@[simp]
theorem ofFinsupp_eq_zero {a} : (⟨a⟩ : R[X]) = 0 ↔ a = 0 
Arguments: {R : Type u} [Semiring R] {a : R[ℕ]}
Goal: { toFinsupp := a } = 0 ↔ a = 0
-- Polynomial.ofFinsupp_eq_one
@[simp]
theorem ofFinsupp_eq_one {a} : (⟨a⟩ : R[X]) = 1 ↔ a = 1 
Arguments: {R : Type u} [Semiring R] {a : R[ℕ]}
Goal: { toFinsupp := a } = 1 ↔ a = 1
-- Polynomial.toFinsuppIso_symm_apply
@[simps apply symm_apply]
def toFinsuppIso : R[X] ≃+* R[ℕ] 
Arguments: (R : Type u) [Semiring R] (toFinsupp : R[ℕ])
Goal: (Polynomial.toFinsuppIso R).symm toFinsupp = { toFinsupp := toFinsupp }
-- Polynomial.toFinsuppIso_apply
@[simps apply symm_apply]
def toFinsuppIso : R[X] ≃+* R[ℕ] 
Arguments: (R : Type u) [Semiring R] (self : R[X])
Goal: (Polynomial.toFinsuppIso R) self = self.toFinsupp
-- Polynomial.ofFinsupp_sum
theorem ofFinsupp_sum {ι : Type*} (s : Finset ι) (f : ι → R[ℕ]) :
    (⟨∑ i ∈ s, f i⟩ : R[X]) = ∑ i ∈ s, ⟨f i⟩ 
Arguments: {R : Type u} [Semiring R] {ι : Type u_1} (s : Finset ι) (f : ι → R[ℕ])
Goal: { toFinsupp := ∑ i ∈ s, f i } = ∑ i ∈ s, { toFinsupp := f i }
-- Polynomial.toFinsupp_sum
theorem toFinsupp_sum {ι : Type*} (s : Finset ι) (f : ι → R[X]) :
    (∑ i ∈ s, f i : R[X]).toFinsupp = ∑ i ∈ s, (f i).toFinsupp 
Arguments: {R : Type u} [Semiring R] {ι : Type u_1} (s : Finset ι) (f : ι → R[X])
Goal: (∑ i ∈ s, f i).toFinsupp = ∑ i ∈ s, (f i).toFinsupp
-- Polynomial.support_ofFinsupp
@[simp]
theorem support_ofFinsupp (p) : support (⟨p⟩ : R[X]) = p.support 
Arguments: {R : Type u} [Semiring R] (p : R[ℕ])
Goal: { toFinsupp := p }.support = p.support
-- Polynomial.support_toFinsupp
theorem support_toFinsupp (p : R[X]) : p.toFinsupp.support = p.support 
Arguments: {R : Type u} [Semiring R] (p : R[X])
Goal: p.toFinsupp.support = p.support
-- Polynomial.support_zero
@[simp]
theorem support_zero : (0 : R[X]).support = ∅ 
Arguments: {R : Type u} [Semiring R]
Goal: Polynomial.support 0 = ∅
-- Polynomial.support_eq_empty
@[simp]
theorem support_eq_empty : p.support = ∅ ↔ p = 0 
Arguments: {R : Type u} [Semiring R] {p : R[X]}
Goal: p.support = ∅ ↔ p = 0
-- Polynomial.support_nonempty
@[simp] lemma support_nonempty : p.support.Nonempty ↔ p ≠ 0 
Arguments: {R : Type u} [Semiring R] {p : R[X]}
Goal: p.support.Nonempty ↔ p ≠ 0
-- Polynomial.card_support_eq_zero
theorem card_support_eq_zero : p.support.card = 0 ↔ p = 0 
Arguments: {R : Type u} [Semiring R] {p : R[X]}
Goal: p.support.card = 0 ↔ p = 0
-- Polynomial.toFinsupp_monomial
@[simp]
theorem toFinsupp_monomial (n : ℕ) (r : R) : (monomial n r).toFinsupp = Finsupp.single n r 
Arguments: {R : Type u} [Semiring R] (n : ℕ) (r : R)
Goal: ((Polynomial.monomial n) r).toFinsupp = Finsupp.single n r
-- Polynomial.ofFinsupp_single
@[simp]
theorem ofFinsupp_single (n : ℕ) (r : R) : (⟨Finsupp.single n r⟩ : R[X]) = monomial n r 
Arguments: {R : Type u} [Semiring R] (n : ℕ) (r : R)
Goal: { toFinsupp := Finsupp.single n r } = (Polynomial.monomial n) r
-- Polynomial.monomial_zero_right
theorem monomial_zero_right (n : ℕ) : monomial n (0 : R) = 0 
Arguments: {R : Type u} [Semiring R] (n : ℕ)
Goal: (Polynomial.monomial n) 0 = 0
-- Polynomial.monomial_zero_one
theorem monomial_zero_one : monomial 0 (1 : R) = 1 
Arguments: {R : Type u} [Semiring R]
Goal: (Polynomial.monomial 0) 1 = 1
-- Polynomial.monomial_add
theorem monomial_add (n : ℕ) (r s : R) : monomial n (r + s) = monomial n r + monomial n s 
Arguments: {R : Type u} [Semiring R] (n : ℕ) (r s : R)
Goal: (Polynomial.monomial n) (r + s) = (Polynomial.monomial n) r + (Polynomial.monomial n) s
-- Polynomial.monomial_mul_monomial
theorem monomial_mul_monomial (n m : ℕ) (r s : R) :
    monomial n r * monomial m s = monomial (n + m) (r * s) 
Arguments: {R : Type u} [Semiring R] (n m : ℕ) (r s : R)
Goal: (Polynomial.monomial n) r * (Polynomial.monomial m) s = (Polynomial.monomial (n + m)) (r * s)
-- Polynomial.monomial_pow
@[simp]
theorem monomial_pow (n : ℕ) (r : R) (k : ℕ) : monomial n r ^ k = monomial (n * k) (r ^ k) 
Arguments: {R : Type u} [Semiring R] (n : ℕ) (r : R) (k : ℕ)
Goal: (Polynomial.monomial n) r ^ k = (Polynomial.monomial (n * k)) (r ^ k)
-- Polynomial.smul_monomial
theorem smul_monomial {S} [SMulZeroClass S R] (a : S) (n : ℕ) (b : R) :
    a • monomial n b = monomial n (a • b) 
Arguments: {R : Type u} [Semiring R] {S : Type u_1} [SMulZeroClass S R] (a : S) (n : ℕ) (b : R)
Goal: a • (Polynomial.monomial n) b = (Polynomial.monomial n) (a • b)
-- Polynomial.monomial_injective
theorem monomial_injective (n : ℕ) : Function.Injective (monomial n : R → R[X]) 
Arguments: {R : Type u} [Semiring R] (n : ℕ)
Goal: Function.Injective ⇑(Polynomial.monomial n)
-- Polynomial.monomial_eq_zero_iff
@[simp]
theorem monomial_eq_zero_iff (t : R) (n : ℕ) : monomial n t = 0 ↔ t = 0 
Arguments: {R : Type u} [Semiring R] (t : R) (n : ℕ)
Goal: (Polynomial.monomial n) t = 0 ↔ t = 0
-- Polynomial.support_add
theorem support_add : (p + q).support ⊆ p.support ∪ q.support 
Arguments: {R : Type u} [Semiring R] {p q : R[X]}
Goal: (p + q).support ⊆ p.support ∪ q.support
-- Polynomial.monomial_zero_left
@[simp]
theorem monomial_zero_left (a : R) : monomial 0 a = C a 
Arguments: {R : Type u} [Semiring R] (a : R)
Goal: (Polynomial.monomial 0) a = Polynomial.C a
-- Polynomial.toFinsupp_C
@[simp]
theorem toFinsupp_C (a : R) : (C a).toFinsupp = single 0 a 
Arguments: {R : Type u} [Semiring R] (a : R)
Goal: (Polynomial.C a).toFinsupp = AddMonoidAlgebra.single 0 a
-- Polynomial.C_0
theorem C_0 : C (0 : R) = 0 
Arguments: {R : Type u} [Semiring R]
Goal: Polynomial.C 0 = 0
-- Polynomial.C_1
theorem C_1 : C (1 : R) = 1 
Arguments: {R : Type u} [Semiring R]
Goal: Polynomial.C 1 = 1
-- Polynomial.C_mul
theorem C_mul : C (a * b) = C a * C b 
Arguments: {R : Type u} {a b : R} [Semiring R]
Goal: Polynomial.C (a * b) = Polynomial.C a * Polynomial.C b
-- Polynomial.C_add
theorem C_add : C (a + b) = C a + C b 
Arguments: {R : Type u} {a b : R} [Semiring R]
Goal: Polynomial.C (a + b) = Polynomial.C a + Polynomial.C b
-- Polynomial.smul_C
@[simp]
theorem smul_C {S} [SMulZeroClass S R] (s : S) (r : R) : s • C r = C (s • r) 
Arguments: {R : Type u} [Semiring R] {S : Type u_1} [SMulZeroClass S R] (s : S) (r : R)
Goal: s • Polynomial.C r = Polynomial.C (s • r)
-- Polynomial.C_pow
theorem C_pow : C (a ^ n) = C a ^ n 
Arguments: {R : Type u} {a : R} {n : ℕ} [Semiring R]
Goal: Polynomial.C (a ^ n) = Polynomial.C a ^ n
-- Polynomial.C_eq_natCast
theorem C_eq_natCast (n : ℕ) : C (n : R) = (n : R[X]) 
Arguments: {R : Type u} [Semiring R] (n : ℕ)
Goal: Polynomial.C ↑n = ↑n
-- Polynomial.C_mul_monomial
@[simp]
theorem C_mul_monomial : C a * monomial n b = monomial n (a * b) 
Arguments: {R : Type u} {a b : R} {n : ℕ} [Semiring R]
Goal: Polynomial.C a * (Polynomial.monomial n) b = (Polynomial.monomial n) (a * b)
-- Polynomial.monomial_mul_C
@[simp]
theorem monomial_mul_C : monomial n a * C b = monomial n (a * b) 
Arguments: {R : Type u} {a b : R} {n : ℕ} [Semiring R]
Goal: (Polynomial.monomial n) a * Polynomial.C b = (Polynomial.monomial n) (a * b)
-- Polynomial.monomial_one_one_eq_X
theorem monomial_one_one_eq_X : monomial 1 (1 : R) = X 
Arguments: {R : Type u} [Semiring R]
Goal: (Polynomial.monomial 1) 1 = Polynomial.X
-- Polynomial.monomial_one_right_eq_X_pow
theorem monomial_one_right_eq_X_pow (n : ℕ) : monomial n (1 : R) = X ^ n 
Arguments: {R : Type u} [Semiring R] (n : ℕ)
Goal: (Polynomial.monomial n) 1 = Polynomial.X ^ n
-- Polynomial.toFinsupp_X
@[simp]
theorem toFinsupp_X : X.toFinsupp = Finsupp.single 1 (1 : R) 
Arguments: {R : Type u} [Semiring R]
Goal: Polynomial.X.toFinsupp = Finsupp.single 1 1
-- Polynomial.X_mul
theorem X_mul : X * p = p * X 
Arguments: {R : Type u} [Semiring R] {p : R[X]}
Goal: Polynomial.X * p = p * Polynomial.X
-- Polynomial.X_pow_mul
theorem X_pow_mul {n : ℕ} : X ^ n * p = p * X ^ n 
Arguments: {R : Type u} [Semiring R] {p : R[X]} {n : ℕ}
Goal: Polynomial.X ^ n * p = p * Polynomial.X ^ n
-- Polynomial.X_mul_C
@[simp]
theorem X_mul_C (r : R) : X * C r = C r * X 
Arguments: {R : Type u} [Semiring R] (r : R)
Goal: Polynomial.X * Polynomial.C r = Polynomial.C r * Polynomial.X
-- Polynomial.X_pow_mul_C
@[simp]
theorem X_pow_mul_C (r : R) (n : ℕ) : X ^ n * C r = C r * X ^ n 
Arguments: {R : Type u} [Semiring R] (r : R) (n : ℕ)
Goal: Polynomial.X ^ n * Polynomial.C r = Polynomial.C r * Polynomial.X ^ n
-- Polynomial.X_pow_mul_assoc
theorem X_pow_mul_assoc {n : ℕ} : p * X ^ n * q = p * q * X ^ n 
Arguments: {R : Type u} [Semiring R] {p q : R[X]} {n : ℕ}
Goal: p * Polynomial.X ^ n * q = p * q * Polynomial.X ^ n
-- Polynomial.X_pow_mul_assoc_C
@[simp]
theorem X_pow_mul_assoc_C {n : ℕ} (r : R) : p * X ^ n * C r = p * C r * X ^ n 
Arguments: {R : Type u} [Semiring R] {p : R[X]} {n : ℕ} (r : R)
Goal: p * Polynomial.X ^ n * Polynomial.C r = p * Polynomial.C r * Polynomial.X ^ n
-- Polynomial.commute_X
theorem commute_X (p : R[X]) : Commute X p 
Arguments: {R : Type u} [Semiring R] (p : R[X])
Goal: Commute Polynomial.X p
-- Polynomial.commute_X_pow
theorem commute_X_pow (p : R[X]) (n : ℕ) : Commute (X ^ n) p 
Arguments: {R : Type u} [Semiring R] (p : R[X]) (n : ℕ)
Goal: Commute (Polynomial.X ^ n) p
-- Polynomial.monomial_mul_X
@[simp]
theorem monomial_mul_X (n : ℕ) (r : R) : monomial n r * X = monomial (n + 1) r 
Arguments: {R : Type u} [Semiring R] (n : ℕ) (r : R)
Goal: (Polynomial.monomial n) r * Polynomial.X = (Polynomial.monomial (n + 1)) r
-- Polynomial.monomial_mul_X_pow
@[simp]
theorem monomial_mul_X_pow (n : ℕ) (r : R) (k : ℕ) :
    monomial n r * X ^ k = monomial (n + k) r 
Arguments: {R : Type u} [Semiring R] (n : ℕ) (r : R) (k : ℕ)
Goal: (Polynomial.monomial n) r * Polynomial.X ^ k = (Polynomial.monomial (n + k)) r
-- Polynomial.X_mul_monomial
@[simp]
theorem X_mul_monomial (n : ℕ) (r : R) : X * monomial n r = monomial (n + 1) r 
Arguments: {R : Type u} [Semiring R] (n : ℕ) (r : R)
Goal: Polynomial.X * (Polynomial.monomial n) r = (Polynomial.monomial (n + 1)) r
-- Polynomial.X_pow_mul_monomial
@[simp]
theorem X_pow_mul_monomial (k n : ℕ) (r : R) : X ^ k * monomial n r = monomial (n + k) r 
Arguments: {R : Type u} [Semiring R] (k n : ℕ) (r : R)
Goal: Polynomial.X ^ k * (Polynomial.monomial n) r = (Polynomial.monomial (n + k)) r
-- Polynomial.coeff_ofFinsupp
@[simp]
theorem coeff_ofFinsupp (p) : coeff (⟨p⟩ : R[X]) = p 
Arguments: {R : Type u} [Semiring R] (p : R[ℕ])
Goal: { toFinsupp := p }.coeff = ⇑p
-- Polynomial.coeff_injective
theorem coeff_injective : Injective (coeff : R[X] → ℕ → R) 
Arguments: {R : Type u} [Semiring R]
Goal: Function.Injective Polynomial.coeff
-- Polynomial.coeff_inj
@[simp]
theorem coeff_inj : p.coeff = q.coeff ↔ p = q 
Arguments: {R : Type u} [Semiring R] {p q : R[X]}
Goal: p.coeff = q.coeff ↔ p = q
-- Polynomial.toFinsupp_apply
theorem toFinsupp_apply (f : R[X]) (i) : f.toFinsupp i = f.coeff i 
Arguments: {R : Type u} [Semiring R] (f : R[X]) (i : ℕ)
Goal: f.toFinsupp i = f.coeff i
-- Polynomial.coeff_monomial
theorem coeff_monomial : coeff (monomial n a) m = if n = m then a else 0 
Arguments: {R : Type u} {a : R} {m n : ℕ} [Semiring R]
Goal: ((Polynomial.monomial n) a).coeff m = if n = m then a else 0
-- Polynomial.coeff_zero
@[simp]
theorem coeff_zero (n : ℕ) : coeff (0 : R[X]) n = 0 
Arguments: {R : Type u} [Semiring R] (n : ℕ)
Goal: Polynomial.coeff 0 n = 0
-- Polynomial.coeff_one
theorem coeff_one {n : ℕ} : coeff (1 : R[X]) n = if n = 0 then 1 else 0 
Arguments: {R : Type u} [Semiring R] {n : ℕ}
Goal: Polynomial.coeff 1 n = if n = 0 then 1 else 0
-- Polynomial.coeff_one_zero
@[simp]
theorem coeff_one_zero : coeff (1 : R[X]) 0 = 1 
Arguments: {R : Type u} [Semiring R]
Goal: Polynomial.coeff 1 0 = 1
-- Polynomial.coeff_X_one
@[simp]
theorem coeff_X_one : coeff (X : R[X]) 1 = 1 
Arguments: {R : Type u} [Semiring R]
Goal: Polynomial.X.coeff 1 = 1
-- Polynomial.coeff_X_zero
@[simp]
theorem coeff_X_zero : coeff (X : R[X]) 0 = 0 
Arguments: {R : Type u} [Semiring R]
Goal: Polynomial.X.coeff 0 = 0
-- Polynomial.coeff_monomial_succ
@[simp]
theorem coeff_monomial_succ : coeff (monomial (n + 1) a) 0 = 0 
Arguments: {R : Type u} {a : R} {n : ℕ} [Semiring R]
Goal: ((Polynomial.monomial (n + 1)) a).coeff 0 = 0
-- Polynomial.coeff_X
theorem coeff_X : coeff (X : R[X]) n = if 1 = n then 1 else 0 
Arguments: {R : Type u} {n : ℕ} [Semiring R]
Goal: Polynomial.X.coeff n = if 1 = n then 1 else 0
-- Polynomial.coeff_X_of_ne_one
theorem coeff_X_of_ne_one {n : ℕ} (hn : n ≠ 1) : coeff (X : R[X]) n = 0 
Arguments: {R : Type u} [Semiring R] {n : ℕ} (hn : n ≠ 1)
Goal: Polynomial.X.coeff n = 0
-- Polynomial.mem_support_iff
@[simp]
theorem mem_support_iff : n ∈ p.support ↔ p.coeff n ≠ 0 
Arguments: {R : Type u} {n : ℕ} [Semiring R] {p : R[X]}
Goal: n ∈ p.support ↔ p.coeff n ≠ 0
-- Polynomial.not_mem_support_iff
theorem not_mem_support_iff : n ∉ p.support ↔ p.coeff n = 0 
Arguments: {R : Type u} {n : ℕ} [Semiring R] {p : R[X]}
Goal: n ∉ p.support ↔ p.coeff n = 0
-- Polynomial.coeff_C
theorem coeff_C : coeff (C a) n = ite (n = 0) a 0 
Arguments: {R : Type u} {a : R} {n : ℕ} [Semiring R]
Goal: (Polynomial.C a).coeff n = if n = 0 then a else 0
-- Polynomial.coeff_C_zero
@[simp]
theorem coeff_C_zero : coeff (C a) 0 = a 
Arguments: {R : Type u} {a : R} [Semiring R]
Goal: (Polynomial.C a).coeff 0 = a
-- Polynomial.coeff_C_ne_zero
theorem coeff_C_ne_zero (h : n ≠ 0) : (C a).coeff n = 0 
Arguments: {R : Type u} {a : R} {n : ℕ} [Semiring R] (h : n ≠ 0)
Goal: (Polynomial.C a).coeff n = 0
-- Polynomial.coeff_C_succ
@[simp]
lemma coeff_C_succ {r : R} {n : ℕ} : coeff (C r) (n + 1) = 0 
Arguments: {R : Type u} [Semiring R] {r : R} {n : ℕ}
Goal: (Polynomial.C r).coeff (n + 1) = 0
-- Polynomial.coeff_natCast_ite
@[simp]
theorem coeff_natCast_ite : (Nat.cast m : R[X]).coeff n = ite (n = 0) m 0 
Arguments: {R : Type u} {m n : ℕ} [Semiring R]
Goal: (↑m).coeff n = ↑(if n = 0 then m else 0)
-- Polynomial.coeff_ofNat_zero
@[simp]
theorem coeff_ofNat_zero (a : ℕ) [a.AtLeastTwo] :
    coeff (no_index (OfNat.ofNat a : R[X])) 0 = OfNat.ofNat a 
Arguments: {R : Type u} [Semiring R] (a : ℕ) [a.AtLeastTwo]
Goal: (OfNat.ofNat a).coeff 0 = OfNat.ofNat a
-- Polynomial.coeff_ofNat_succ
@[simp]
theorem coeff_ofNat_succ (a n : ℕ) [h : a.AtLeastTwo] :
    coeff (no_index (OfNat.ofNat a : R[X])) (n + 1) = 0 
Arguments: {R : Type u} [Semiring R] (a n : ℕ) [h : a.AtLeastTwo]
Goal: (OfNat.ofNat a).coeff (n + 1) = 0
-- Polynomial.C_mul_X_pow_eq_monomial
theorem C_mul_X_pow_eq_monomial : ∀ {n : ℕ}, C a * X ^ n = monomial n a
  
Arguments: {R : Type u} {a : R} [Semiring R] {n : ℕ}
Goal: Polynomial.C a * Polynomial.X ^ n = (Polynomial.monomial n) a
-- Polynomial.toFinsupp_C_mul_X_pow
@[simp high]
theorem toFinsupp_C_mul_X_pow (a : R) (n : ℕ) :
    Polynomial.toFinsupp (C a * X ^ n) = Finsupp.single n a 
Arguments: {R : Type u} [Semiring R] (a : R) (n : ℕ)
Goal: (Polynomial.C a * Polynomial.X ^ n).toFinsupp = Finsupp.single n a
-- Polynomial.C_mul_X_eq_monomial
theorem C_mul_X_eq_monomial : C a * X = monomial 1 a 
Arguments: {R : Type u} {a : R} [Semiring R]
Goal: Polynomial.C a * Polynomial.X = (Polynomial.monomial 1) a
-- Polynomial.toFinsupp_C_mul_X
@[simp high]
theorem toFinsupp_C_mul_X (a : R) : Polynomial.toFinsupp (C a * X) = Finsupp.single 1 a 
Arguments: {R : Type u} [Semiring R] (a : R)
Goal: (Polynomial.C a * Polynomial.X).toFinsupp = Finsupp.single 1 a
-- Polynomial.C_injective
theorem C_injective : Injective (C : R → R[X]) 
Arguments: {R : Type u} [Semiring R]
Goal: Function.Injective ⇑Polynomial.C
-- Polynomial.C_inj
@[simp]
theorem C_inj : C a = C b ↔ a = b 
Arguments: {R : Type u} {a b : R} [Semiring R]
Goal: Polynomial.C a = Polynomial.C b ↔ a = b
-- Polynomial.C_eq_zero
@[simp]
theorem C_eq_zero : C a = 0 ↔ a = 0 
Arguments: {R : Type u} {a : R} [Semiring R]
Goal: Polynomial.C a = 0 ↔ a = 0
-- Polynomial.C_ne_zero
theorem C_ne_zero : C a ≠ 0 ↔ a ≠ 0 
Arguments: {R : Type u} {a : R} [Semiring R]
Goal: Polynomial.C a ≠ 0 ↔ a ≠ 0
-- Polynomial.subsingleton_iff_subsingleton
theorem subsingleton_iff_subsingleton : Subsingleton R[X] ↔ Subsingleton R 
Arguments: {R : Type u} [Semiring R]
Goal: Subsingleton R[X] ↔ Subsingleton R
-- Polynomial.Nontrivial.of_polynomial_ne
theorem Nontrivial.of_polynomial_ne (h : p ≠ q) : Nontrivial R 
Arguments: {R : Type u} [Semiring R] {p q : R[X]} (h : p ≠ q)
Goal: Nontrivial R
-- Polynomial.forall_eq_iff_forall_eq
theorem forall_eq_iff_forall_eq : (∀ f g : R[X], f = g) ↔ ∀ a b : R, a = b 
Arguments: {R : Type u} [Semiring R]
Goal: (∀ (f g : R[X]), f = g) ↔ ∀ (a b : R), a = b
-- Polynomial.ext_iff
theorem ext_iff {p q : R[X]} : p = q ↔ ∀ n, coeff p n = coeff q n 
Arguments: {R : Type u} [Semiring R] {p q : R[X]}
Goal: p = q ↔ ∀ (n : ℕ), p.coeff n = q.coeff n
-- Polynomial.ext
@[ext]
theorem ext {p q : R[X]} : (∀ n, coeff p n = coeff q n) → p = q 
Arguments: {R : Type u} [Semiring R] {p q : R[X]}
Goal: (∀ (n : ℕ), p.coeff n = q.coeff n) → p = q
-- Polynomial.addSubmonoid_closure_setOf_eq_monomial
theorem addSubmonoid_closure_setOf_eq_monomial :
    AddSubmonoid.closure { p : R[X] | ∃ n a, p = monomial n a } = ⊤ 
Arguments: {R : Type u} [Semiring R]
Goal: AddSubmonoid.closure {p | ∃ n a, p = (Polynomial.monomial n) a} = ⊤
-- Polynomial.addHom_ext
theorem addHom_ext {M : Type*} [AddMonoid M] {f g : R[X] →+ M}
    (h : ∀ n a, f (monomial n a) = g (monomial n a)) : f = g 
Arguments: {R : Type u} [Semiring R] {M : Type u_1} [AddMonoid M] {f g : R[X] →+ M} (h : ∀ (n : ℕ) (a : R), f ((Polynomial.monomial n) a) = g ((Polynomial.monomial n) a))
Goal: f = g
-- Polynomial.addHom_ext'
@[ext high]
theorem addHom_ext' {M : Type*} [AddMonoid M] {f g : R[X] →+ M}
    (h : ∀ n, f.comp (monomial n).toAddMonoidHom = g.comp (monomial n).toAddMonoidHom) : f = g 
Arguments: {R : Type u} [Semiring R] {M : Type u_1} [AddMonoid M] {f g : R[X] →+ M} (h : ∀ (n : ℕ), f.comp (Polynomial.monomial n).toAddMonoidHom = g.comp (Polynomial.monomial n).toAddMonoidHom)
Goal: f = g
-- Polynomial.lhom_ext'
@[ext high]
theorem lhom_ext' {M : Type*} [AddCommMonoid M] [Module R M] {f g : R[X] →ₗ[R] M}
    (h : ∀ n, f.comp (monomial n) = g.comp (monomial n)) : f = g 
Arguments: {R : Type u} [Semiring R] {M : Type u_1} [AddCommMonoid M] [Module R M] {f g : R[X] →ₗ[R] M} (h : ∀ (n : ℕ), f ∘ₗ Polynomial.monomial n = g ∘ₗ Polynomial.monomial n)
Goal: f = g
-- Polynomial.eq_zero_of_eq_zero
theorem eq_zero_of_eq_zero (h : (0 : R) = (1 : R)) (p : R[X]) : p = 0 
Arguments: {R : Type u} [Semiring R] (h : 0 = 1) (p : R[X])
Goal: p = 0
-- Polynomial.support_monomial
theorem support_monomial (n) {a : R} (H : a ≠ 0) : (monomial n a).support = singleton n 
Arguments: {R : Type u} [Semiring R] (n : ℕ) {a : R} (H : a ≠ 0)
Goal: ((Polynomial.monomial n) a).support = {n}
-- Polynomial.support_monomial'
theorem support_monomial' (n) (a : R) : (monomial n a).support ⊆ singleton n 
Arguments: {R : Type u} [Semiring R] (n : ℕ) (a : R)
Goal: ((Polynomial.monomial n) a).support ⊆ {n}
-- Polynomial.support_C_mul_X
theorem support_C_mul_X {c : R} (h : c ≠ 0) : Polynomial.support (C c * X) = singleton 1 
Arguments: {R : Type u} [Semiring R] {c : R} (h : c ≠ 0)
Goal: (Polynomial.C c * Polynomial.X).support = {1}
-- Polynomial.support_C_mul_X'
theorem support_C_mul_X' (c : R) : Polynomial.support (C c * X) ⊆ singleton 1 
Arguments: {R : Type u} [Semiring R] (c : R)
Goal: (Polynomial.C c * Polynomial.X).support ⊆ {1}
-- Polynomial.support_C_mul_X_pow
theorem support_C_mul_X_pow (n : ℕ) {c : R} (h : c ≠ 0) :
    Polynomial.support (C c * X ^ n) = singleton n 
Arguments: {R : Type u} [Semiring R] (n : ℕ) {c : R} (h : c ≠ 0)
Goal: (Polynomial.C c * Polynomial.X ^ n).support = {n}
-- Polynomial.support_C_mul_X_pow'
theorem support_C_mul_X_pow' (n : ℕ) (c : R) : Polynomial.support (C c * X ^ n) ⊆ singleton n 
Arguments: {R : Type u} [Semiring R] (n : ℕ) (c : R)
Goal: (Polynomial.C c * Polynomial.X ^ n).support ⊆ {n}
-- Polynomial.support_binomial'
theorem support_binomial' (k m : ℕ) (x y : R) :
    Polynomial.support (C x * X ^ k + C y * X ^ m) ⊆ {k, m} 
Arguments: {R : Type u} [Semiring R] (k m : ℕ) (x y : R)
Goal: (Polynomial.C x * Polynomial.X ^ k + Polynomial.C y * Polynomial.X ^ m).support ⊆ {k, m}
-- Polynomial.support_trinomial'
theorem support_trinomial' (k m n : ℕ) (x y z : R) :
    Polynomial.support (C x * X ^ k + C y * X ^ m + C z * X ^ n) ⊆ {k, m, n} 
Arguments: {R : Type u} [Semiring R] (k m n : ℕ) (x y z : R)
Goal: (Polynomial.C x * Polynomial.X ^ k + Polynomial.C y * Polynomial.X ^ m + Polynomial.C z * Polynomial.X ^ n).support ⊆
  {k, m, n}
-- Polynomial.X_pow_eq_monomial
theorem X_pow_eq_monomial (n) : X ^ n = monomial n (1 : R) 
Arguments: {R : Type u} [Semiring R] (n : ℕ)
Goal: Polynomial.X ^ n = (Polynomial.monomial n) 1
-- Polynomial.toFinsupp_X_pow
@[simp high]
theorem toFinsupp_X_pow (n : ℕ) : (X ^ n).toFinsupp = Finsupp.single n (1 : R) 
Arguments: {R : Type u} [Semiring R] (n : ℕ)
Goal: (Polynomial.X ^ n).toFinsupp = Finsupp.single n 1
-- Polynomial.smul_X_eq_monomial
theorem smul_X_eq_monomial {n} : a • X ^ n = monomial n (a : R) 
Arguments: {R : Type u} {a : R} [Semiring R] {n : ℕ}
Goal: a • Polynomial.X ^ n = (Polynomial.monomial n) a
-- Polynomial.support_X_pow
theorem support_X_pow (H : ¬(1 : R) = 0) (n : ℕ) : (X ^ n : R[X]).support = singleton n 
Arguments: {R : Type u} [Semiring R] (H : ¬1 = 0) (n : ℕ)
Goal: (Polynomial.X ^ n).support = {n}
-- Polynomial.support_X_empty
theorem support_X_empty (H : (1 : R) = 0) : (X : R[X]).support = ∅ 
Arguments: {R : Type u} [Semiring R] (H : 1 = 0)
Goal: Polynomial.X.support = ∅
-- Polynomial.support_X
theorem support_X (H : ¬(1 : R) = 0) : (X : R[X]).support = singleton 1 
Arguments: {R : Type u} [Semiring R] (H : ¬1 = 0)
Goal: Polynomial.X.support = {1}
-- Polynomial.monomial_left_inj
theorem monomial_left_inj {a : R} (ha : a ≠ 0) {i j : ℕ} :
    monomial i a = monomial j a ↔ i = j 
Arguments: {R : Type u} [Semiring R] {a : R} (ha : a ≠ 0) {i j : ℕ}
Goal: (Polynomial.monomial i) a = (Polynomial.monomial j) a ↔ i = j