ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- MvPolynomial.mem_support_iff
@[simp]
theorem mem_support_iff {p : MvPolynomial σ R} {m : σ →₀ ℕ} : m ∈ p.support ↔ p.coeff m ≠ 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {p : MvPolynomial σ R} {m : σ →₀ ℕ}
Goal: m ∈ p.support ↔ MvPolynomial.coeff m p ≠ 0
-- MvPolynomial.not_mem_support_iff
theorem not_mem_support_iff {p : MvPolynomial σ R} {m : σ →₀ ℕ} : m ∉ p.support ↔ p.coeff m = 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {p : MvPolynomial σ R} {m : σ →₀ ℕ}
Goal: m ∉ p.support ↔ MvPolynomial.coeff m p = 0
-- MvPolynomial.sum_def
theorem sum_def {A} [AddCommMonoid A] {p : MvPolynomial σ R} {b : (σ →₀ ℕ) → R → A} :
    p.sum b = ∑ m ∈ p.support, b m (p.coeff m) 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {A : Type u_2} [AddCommMonoid A] {p : MvPolynomial σ R} {b : (σ →₀ ℕ) → R → A}
Goal: Finsupp.sum p b = ∑ m ∈ p.support, b m (MvPolynomial.coeff m p)
-- MvPolynomial.support_mul
theorem support_mul [DecidableEq σ] (p q : MvPolynomial σ R) :
    (p * q).support ⊆ p.support + q.support 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [DecidableEq σ] (p q : MvPolynomial σ R)
Goal: (p * q).support ⊆ p.support + q.support
-- MvPolynomial.ext
@[ext]
theorem ext (p q : MvPolynomial σ R) : (∀ m, coeff m p = coeff m q) → p = q 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (p q : MvPolynomial σ R)
Goal: (∀ (m : σ →₀ ℕ), MvPolynomial.coeff m p = MvPolynomial.coeff m q) → p = q
-- MvPolynomial.ext_iff
protected theorem ext_iff (p q : MvPolynomial σ R) : p = q ↔ ∀ m, coeff m p = coeff m q 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (p q : MvPolynomial σ R)
Goal: p = q ↔ ∀ (m : σ →₀ ℕ), MvPolynomial.coeff m p = MvPolynomial.coeff m q
-- MvPolynomial.coeff_add
@[simp]
theorem coeff_add (m : σ →₀ ℕ) (p q : MvPolynomial σ R) : coeff m (p + q) = coeff m p + coeff m q 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (m : σ →₀ ℕ) (p q : MvPolynomial σ R)
Goal: MvPolynomial.coeff m (p + q) = MvPolynomial.coeff m p + MvPolynomial.coeff m q
-- MvPolynomial.coeff_smul
@[simp]
theorem coeff_smul {S₁ : Type*} [SMulZeroClass S₁ R] (m : σ →₀ ℕ) (C : S₁) (p : MvPolynomial σ R) :
    coeff m (C • p) = C • coeff m p 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {S₁ : Type u_2} [SMulZeroClass S₁ R] (m : σ →₀ ℕ) (C : S₁) (p : MvPolynomial σ R)
Goal: MvPolynomial.coeff m (C • p) = C • MvPolynomial.coeff m p
-- MvPolynomial.coeff_zero
@[simp]
theorem coeff_zero (m : σ →₀ ℕ) : coeff m (0 : MvPolynomial σ R) = 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (m : σ →₀ ℕ)
Goal: MvPolynomial.coeff m 0 = 0
-- MvPolynomial.coeff_zero_X
@[simp]
theorem coeff_zero_X (i : σ) : coeff 0 (X i : MvPolynomial σ R) = 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (i : σ)
Goal: MvPolynomial.coeff 0 (MvPolynomial.X i) = 0
-- MvPolynomial.coeffAddMonoidHom_apply
@[simps]
def coeffAddMonoidHom (m : σ →₀ ℕ) : MvPolynomial σ R →+ R 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (m : σ →₀ ℕ) (p : MvPolynomial σ R)
Goal: (MvPolynomial.coeffAddMonoidHom m) p = MvPolynomial.coeff m p
-- MvPolynomial.lcoeff_apply
@[simps]
def lcoeff (m : σ →₀ ℕ) : MvPolynomial σ R →ₗ[R] R 
Arguments: (R : Type u) {σ : Type u_1} [CommSemiring R] (m : σ →₀ ℕ) (p : MvPolynomial σ R)
Goal: (MvPolynomial.lcoeff R m) p = MvPolynomial.coeff m p
-- MvPolynomial.coeff_sum
theorem coeff_sum {X : Type*} (s : Finset X) (f : X → MvPolynomial σ R) (m : σ →₀ ℕ) :
    coeff m (∑ x ∈ s, f x) = ∑ x ∈ s, coeff m (f x) 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {X : Type u_2} (s : Finset X) (f : X → MvPolynomial σ R) (m : σ →₀ ℕ)
Goal: MvPolynomial.coeff m (∑ x ∈ s, f x) = ∑ x ∈ s, MvPolynomial.coeff m (f x)
-- MvPolynomial.monic_monomial_eq
theorem monic_monomial_eq (m) :
    monomial m (1 : R) = (m.prod fun n e => X n ^ e : MvPolynomial σ R) 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (m : σ →₀ ℕ)
Goal: (MvPolynomial.monomial m) 1 = m.prod fun n e => MvPolynomial.X n ^ e
-- MvPolynomial.coeff_monomial
@[simp]
theorem coeff_monomial [DecidableEq σ] (m n) (a) :
    coeff m (monomial n a : MvPolynomial σ R) = if n = m then a else 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [DecidableEq σ] (m n : σ →₀ ℕ) (a : R)
Goal: MvPolynomial.coeff m ((MvPolynomial.monomial n) a) = if n = m then a else 0
-- MvPolynomial.coeff_C
@[simp]
theorem coeff_C [DecidableEq σ] (m) (a) :
    coeff m (C a : MvPolynomial σ R) = if 0 = m then a else 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [DecidableEq σ] (m : σ →₀ ℕ) (a : R)
Goal: MvPolynomial.coeff m (MvPolynomial.C a) = if 0 = m then a else 0
-- MvPolynomial.eq_C_of_isEmpty
lemma eq_C_of_isEmpty [IsEmpty σ] (p : MvPolynomial σ R) :
    p = C (p.coeff 0) 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [IsEmpty σ] (p : MvPolynomial σ R)
Goal: p = MvPolynomial.C (MvPolynomial.coeff 0 p)
-- MvPolynomial.coeff_one
theorem coeff_one [DecidableEq σ] (m) : coeff m (1 : MvPolynomial σ R) = if 0 = m then 1 else 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [DecidableEq σ] (m : σ →₀ ℕ)
Goal: MvPolynomial.coeff m 1 = if 0 = m then 1 else 0
-- MvPolynomial.coeff_zero_C
@[simp]
theorem coeff_zero_C (a) : coeff 0 (C a : MvPolynomial σ R) = a 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (a : R)
Goal: MvPolynomial.coeff 0 (MvPolynomial.C a) = a
-- MvPolynomial.coeff_zero_one
@[simp]
theorem coeff_zero_one : coeff 0 (1 : MvPolynomial σ R) = 1 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R]
Goal: MvPolynomial.coeff 0 1 = 1
-- MvPolynomial.coeff_X_pow
theorem coeff_X_pow [DecidableEq σ] (i : σ) (m) (k : ℕ) :
    coeff m (X i ^ k : MvPolynomial σ R) = if Finsupp.single i k = m then 1 else 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [DecidableEq σ] (i : σ) (m : σ →₀ ℕ) (k : ℕ)
Goal: MvPolynomial.coeff m (MvPolynomial.X i ^ k) = if Finsupp.single i k = m then 1 else 0
-- MvPolynomial.coeff_X'
theorem coeff_X' [DecidableEq σ] (i : σ) (m) :
    coeff m (X i : MvPolynomial σ R) = if Finsupp.single i 1 = m then 1 else 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [DecidableEq σ] (i : σ) (m : σ →₀ ℕ)
Goal: MvPolynomial.coeff m (MvPolynomial.X i) = if Finsupp.single i 1 = m then 1 else 0
-- MvPolynomial.coeff_X
@[simp]
theorem coeff_X (i : σ) : coeff (Finsupp.single i 1) (X i : MvPolynomial σ R) = 1 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (i : σ)
Goal: MvPolynomial.coeff (Finsupp.single i 1) (MvPolynomial.X i) = 1
-- MvPolynomial.coeff_C_mul
@[simp]
theorem coeff_C_mul (m) (a : R) (p : MvPolynomial σ R) : coeff m (C a * p) = a * coeff m p 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (m : σ →₀ ℕ) (a : R) (p : MvPolynomial σ R)
Goal: MvPolynomial.coeff m (MvPolynomial.C a * p) = a * MvPolynomial.coeff m p
-- MvPolynomial.coeff_mul
theorem coeff_mul [DecidableEq σ] (p q : MvPolynomial σ R) (n : σ →₀ ℕ) :
    coeff n (p * q) = ∑ x ∈ Finset.antidiagonal n, coeff x.1 p * coeff x.2 q 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [DecidableEq σ] (p q : MvPolynomial σ R) (n : σ →₀ ℕ)
Goal: MvPolynomial.coeff n (p * q) = ∑ x ∈ Finset.antidiagonal n, MvPolynomial.coeff x.1 p * MvPolynomial.coeff x.2 q
-- MvPolynomial.coeff_mul_monomial
@[simp]
theorem coeff_mul_monomial (m) (s : σ →₀ ℕ) (r : R) (p : MvPolynomial σ R) :
    coeff (m + s) (p * monomial s r) = coeff m p * r 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (m s : σ →₀ ℕ) (r : R) (p : MvPolynomial σ R)
Goal: MvPolynomial.coeff (m + s) (p * (MvPolynomial.monomial s) r) = MvPolynomial.coeff m p * r
-- MvPolynomial.coeff_monomial_mul
@[simp]
theorem coeff_monomial_mul (m) (s : σ →₀ ℕ) (r : R) (p : MvPolynomial σ R) :
    coeff (s + m) (monomial s r * p) = r * coeff m p 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (m s : σ →₀ ℕ) (r : R) (p : MvPolynomial σ R)
Goal: MvPolynomial.coeff (s + m) ((MvPolynomial.monomial s) r * p) = r * MvPolynomial.coeff m p
-- MvPolynomial.coeff_mul_X
@[simp]
theorem coeff_mul_X (m) (s : σ) (p : MvPolynomial σ R) :
    coeff (m + Finsupp.single s 1) (p * X s) = coeff m p 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (m : σ →₀ ℕ) (s : σ) (p : MvPolynomial σ R)
Goal: MvPolynomial.coeff (m + Finsupp.single s 1) (p * MvPolynomial.X s) = MvPolynomial.coeff m p
-- MvPolynomial.coeff_X_mul
@[simp]
theorem coeff_X_mul (m) (s : σ) (p : MvPolynomial σ R) :
    coeff (Finsupp.single s 1 + m) (X s * p) = coeff m p 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (m : σ →₀ ℕ) (s : σ) (p : MvPolynomial σ R)
Goal: MvPolynomial.coeff (Finsupp.single s 1 + m) (MvPolynomial.X s * p) = MvPolynomial.coeff m p
-- MvPolynomial.coeff_single_X_pow
lemma coeff_single_X_pow [DecidableEq σ] (s s' : σ) (n n' : ℕ) :
    (X (R := R) s ^ n).coeff (Finsupp.single s' n')
    = if s = s' ∧ n = n' ∨ n = 0 ∧ n' = 0 then 1 else 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [DecidableEq σ] (s s' : σ) (n n' : ℕ)
Goal: MvPolynomial.coeff (Finsupp.single s' n') (MvPolynomial.X s ^ n) = if s = s' ∧ n = n' ∨ n = 0 ∧ n' = 0 then 1 else 0
-- MvPolynomial.coeff_single_X
@[simp]
lemma coeff_single_X [DecidableEq σ] (s s' : σ) (n : ℕ) :
    (X s).coeff (R := R) (Finsupp.single s' n) = if n = 1 ∧ s = s' then 1 else 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [DecidableEq σ] (s s' : σ) (n : ℕ)
Goal: MvPolynomial.coeff (Finsupp.single s' n) (MvPolynomial.X s) = if n = 1 ∧ s = s' then 1 else 0
-- MvPolynomial.support_mul_X
@[simp]
theorem support_mul_X (s : σ) (p : MvPolynomial σ R) :
    (p * X s).support = p.support.map (addRightEmbedding (Finsupp.single s 1)) 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (s : σ) (p : MvPolynomial σ R)
Goal: (p * MvPolynomial.X s).support = Finset.map (addRightEmbedding (Finsupp.single s 1)) p.support
-- MvPolynomial.support_X_mul
@[simp]
theorem support_X_mul (s : σ) (p : MvPolynomial σ R) :
    (X s * p).support = p.support.map (addLeftEmbedding (Finsupp.single s 1)) 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (s : σ) (p : MvPolynomial σ R)
Goal: (MvPolynomial.X s * p).support = Finset.map (addLeftEmbedding (Finsupp.single s 1)) p.support
-- MvPolynomial.support_smul_eq
@[simp]
theorem support_smul_eq {S₁ : Type*} [Semiring S₁] [Module S₁ R] [NoZeroSMulDivisors S₁ R] {a : S₁}
    (h : a ≠ 0) (p : MvPolynomial σ R) : (a • p).support = p.support 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {S₁ : Type u_2} [Semiring S₁] [Module S₁ R] [NoZeroSMulDivisors S₁ R] {a : S₁} (h : a ≠ 0) (p : MvPolynomial σ R)
Goal: (a • p).support = p.support
-- MvPolynomial.support_sdiff_support_subset_support_add
theorem support_sdiff_support_subset_support_add [DecidableEq σ] (p q : MvPolynomial σ R) :
    p.support \ q.support ⊆ (p + q).support 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [DecidableEq σ] (p q : MvPolynomial σ R)
Goal: p.support \ q.support ⊆ (p + q).support
-- MvPolynomial.support_symmDiff_support_subset_support_add
theorem support_symmDiff_support_subset_support_add [DecidableEq σ] (p q : MvPolynomial σ R) :
    p.support ∆ q.support ⊆ (p + q).support 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [DecidableEq σ] (p q : MvPolynomial σ R)
Goal: symmDiff p.support q.support ⊆ (p + q).support
-- MvPolynomial.coeff_mul_monomial'
theorem coeff_mul_monomial' (m) (s : σ →₀ ℕ) (r : R) (p : MvPolynomial σ R) :
    coeff m (p * monomial s r) = if s ≤ m then coeff (m - s) p * r else 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (m s : σ →₀ ℕ) (r : R) (p : MvPolynomial σ R)
Goal: MvPolynomial.coeff m (p * (MvPolynomial.monomial s) r) = if s ≤ m then MvPolynomial.coeff (m - s) p * r else 0
-- MvPolynomial.coeff_monomial_mul'
theorem coeff_monomial_mul' (m) (s : σ →₀ ℕ) (r : R) (p : MvPolynomial σ R) :
    coeff m (monomial s r * p) = if s ≤ m then r * coeff (m - s) p else 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (m s : σ →₀ ℕ) (r : R) (p : MvPolynomial σ R)
Goal: MvPolynomial.coeff m ((MvPolynomial.monomial s) r * p) = if s ≤ m then r * MvPolynomial.coeff (m - s) p else 0
-- MvPolynomial.coeff_mul_X'
theorem coeff_mul_X' [DecidableEq σ] (m) (s : σ) (p : MvPolynomial σ R) :
    coeff m (p * X s) = if s ∈ m.support then coeff (m - Finsupp.single s 1) p else 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [DecidableEq σ] (m : σ →₀ ℕ) (s : σ) (p : MvPolynomial σ R)
Goal: MvPolynomial.coeff m (p * MvPolynomial.X s) = if s ∈ m.support then MvPolynomial.coeff (m - Finsupp.single s 1) p else 0
-- MvPolynomial.coeff_X_mul'
theorem coeff_X_mul' [DecidableEq σ] (m) (s : σ) (p : MvPolynomial σ R) :
    coeff m (X s * p) = if s ∈ m.support then coeff (m - Finsupp.single s 1) p else 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [DecidableEq σ] (m : σ →₀ ℕ) (s : σ) (p : MvPolynomial σ R)
Goal: MvPolynomial.coeff m (MvPolynomial.X s * p) = if s ∈ m.support then MvPolynomial.coeff (m - Finsupp.single s 1) p else 0
-- MvPolynomial.eq_zero_iff
theorem eq_zero_iff {p : MvPolynomial σ R} : p = 0 ↔ ∀ d, coeff d p = 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {p : MvPolynomial σ R}
Goal: p = 0 ↔ ∀ (d : σ →₀ ℕ), MvPolynomial.coeff d p = 0
-- MvPolynomial.ne_zero_iff
theorem ne_zero_iff {p : MvPolynomial σ R} : p ≠ 0 ↔ ∃ d, coeff d p ≠ 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {p : MvPolynomial σ R}
Goal: p ≠ 0 ↔ ∃ d, MvPolynomial.coeff d p ≠ 0
-- MvPolynomial.X_ne_zero
@[simp]
theorem X_ne_zero [Nontrivial R] (s : σ) :
    X (R := R) s ≠ 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [Nontrivial R] (s : σ)
Goal: MvPolynomial.X s ≠ 0
-- MvPolynomial.support_eq_empty
@[simp]
theorem support_eq_empty {p : MvPolynomial σ R} : p.support = ∅ ↔ p = 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {p : MvPolynomial σ R}
Goal: p.support = ∅ ↔ p = 0
-- MvPolynomial.support_nonempty
@[simp]
lemma support_nonempty {p : MvPolynomial σ R} : p.support.Nonempty ↔ p ≠ 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {p : MvPolynomial σ R}
Goal: p.support.Nonempty ↔ p ≠ 0
-- MvPolynomial.exists_coeff_ne_zero
theorem exists_coeff_ne_zero {p : MvPolynomial σ R} (h : p ≠ 0) : ∃ d, coeff d p ≠ 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {p : MvPolynomial σ R} (h : p ≠ 0)
Goal: ∃ d, MvPolynomial.coeff d p ≠ 0
-- MvPolynomial.C_dvd_iff_dvd_coeff
theorem C_dvd_iff_dvd_coeff (r : R) (φ : MvPolynomial σ R) : C r ∣ φ ↔ ∀ i, r ∣ φ.coeff i 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (r : R) (φ : MvPolynomial σ R)
Goal: MvPolynomial.C r ∣ φ ↔ ∀ (i : σ →₀ ℕ), r ∣ MvPolynomial.coeff i φ
-- MvPolynomial.isRegular_X
@[simp] lemma isRegular_X : IsRegular (X n : MvPolynomial σ R) 
Arguments: {R : Type u} {σ : Type u_1} {n : σ} [CommSemiring R]
Goal: IsRegular (MvPolynomial.X n)
-- MvPolynomial.isRegular_X_pow
@[simp] lemma isRegular_X_pow (k : ℕ) : IsRegular (X n ^ k : MvPolynomial σ R) 
Arguments: {R : Type u} {σ : Type u_1} {n : σ} [CommSemiring R] (k : ℕ)
Goal: IsRegular (MvPolynomial.X n ^ k)
-- MvPolynomial.isRegular_prod_X
@[simp] lemma isRegular_prod_X (s : Finset σ) :
    IsRegular (∏ n ∈ s, X n : MvPolynomial σ R) 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (s : Finset σ)
Goal: IsRegular (∏ n ∈ s, MvPolynomial.X n)
-- MvPolynomial.coeffs_zero
@[simp]
lemma coeffs_zero : coeffs (0 : MvPolynomial σ R) = ∅ 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R]
Goal: MvPolynomial.coeffs 0 = ∅
-- MvPolynomial.coeffs_one
lemma coeffs_one : coeffs (1 : MvPolynomial σ R) ⊆ {1} 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R]
Goal: MvPolynomial.coeffs 1 ⊆ {1}
-- MvPolynomial.coeffs_eq_empty_of_subsingleton
@[nontriviality]
lemma coeffs_eq_empty_of_subsingleton [Subsingleton R] (p : MvPolynomial σ R) : p.coeffs = ∅ 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [Subsingleton R] (p : MvPolynomial σ R)
Goal: p.coeffs = ∅
-- MvPolynomial.coeffs_one_of_nontrivial
@[simp]
lemma coeffs_one_of_nontrivial [Nontrivial R] : coeffs (1 : MvPolynomial σ R) = {1} 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [Nontrivial R]
Goal: MvPolynomial.coeffs 1 = {1}
-- MvPolynomial.mem_coeffs_iff
lemma mem_coeffs_iff {p : MvPolynomial σ R} {c : R} :
    c ∈ p.coeffs ↔ ∃ n ∈ p.support, c = p.coeff n 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {p : MvPolynomial σ R} {c : R}
Goal: c ∈ p.coeffs ↔ ∃ n ∈ p.support, c = MvPolynomial.coeff n p
-- MvPolynomial.coeff_mem_coeffs
lemma coeff_mem_coeffs {p : MvPolynomial σ R} (m : σ →₀ ℕ)
    (h : p.coeff m ≠ 0) : p.coeff m ∈ p.coeffs 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {p : MvPolynomial σ R} (m : σ →₀ ℕ) (h : MvPolynomial.coeff m p ≠ 0)
Goal: MvPolynomial.coeff m p ∈ p.coeffs
-- MvPolynomial.zero_not_mem_coeffs
lemma zero_not_mem_coeffs (p : MvPolynomial σ R) : 0 ∉ p.coeffs 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (p : MvPolynomial σ R)
Goal: 0 ∉ p.coeffs
-- MvPolynomial.constantCoeff_eq
theorem constantCoeff_eq : (constantCoeff : MvPolynomial σ R → R) = coeff 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R]
Goal: ⇑MvPolynomial.constantCoeff = MvPolynomial.coeff 0
-- MvPolynomial.constantCoeff_C
@[simp]
theorem constantCoeff_C (r : R) : constantCoeff (C r : MvPolynomial σ R) = r 
Arguments: {R : Type u} (σ : Type u_1) [CommSemiring R] (r : R)
Goal: MvPolynomial.constantCoeff (MvPolynomial.C r) = r
-- MvPolynomial.constantCoeff_X
@[simp]
theorem constantCoeff_X (i : σ) : constantCoeff (X i : MvPolynomial σ R) = 0 
Arguments: (R : Type u) {σ : Type u_1} [CommSemiring R] (i : σ)
Goal: MvPolynomial.constantCoeff (MvPolynomial.X i) = 0
-- MvPolynomial.constantCoeff_smul
@[simp 1001]
theorem constantCoeff_smul {R : Type*} [SMulZeroClass R S₁] (a : R) (f : MvPolynomial σ S₁) :
    constantCoeff (a • f) = a • constantCoeff f 
Arguments: {S₁ : Type v} {σ : Type u_1} [CommSemiring S₁] {R : Type u_2} [SMulZeroClass R S₁] (a : R) (f : MvPolynomial σ S₁)
Goal: MvPolynomial.constantCoeff (a • f) = a • MvPolynomial.constantCoeff f
-- MvPolynomial.constantCoeff_monomial
theorem constantCoeff_monomial [DecidableEq σ] (d : σ →₀ ℕ) (r : R) :
    constantCoeff (monomial d r) = if d = 0 then r else 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [DecidableEq σ] (d : σ →₀ ℕ) (r : R)
Goal: MvPolynomial.constantCoeff ((MvPolynomial.monomial d) r) = if d = 0 then r else 0
-- MvPolynomial.constantCoeff_comp_C
@[simp]
theorem constantCoeff_comp_C : constantCoeff.comp (C : R →+* MvPolynomial σ R) = RingHom.id R 
Arguments: (R : Type u) (σ : Type u_1) [CommSemiring R]
Goal: MvPolynomial.constantCoeff.comp MvPolynomial.C = RingHom.id R
-- MvPolynomial.constantCoeff_comp_algebraMap
theorem constantCoeff_comp_algebraMap :
    constantCoeff.comp (algebraMap R (MvPolynomial σ R)) = RingHom.id R 
Arguments: (R : Type u) (σ : Type u_1) [CommSemiring R]
Goal: MvPolynomial.constantCoeff.comp (algebraMap R (MvPolynomial σ R)) = RingHom.id R
-- MvPolynomial.support_sum_monomial_coeff
@[simp]
theorem support_sum_monomial_coeff (p : MvPolynomial σ R) :
    (∑ v ∈ p.support, monomial v (coeff v p)) = p 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (p : MvPolynomial σ R)
Goal: ∑ v ∈ p.support, (MvPolynomial.monomial v) (MvPolynomial.coeff v p) = p
-- MvPolynomial.as_sum
theorem as_sum (p : MvPolynomial σ R) : p = ∑ v ∈ p.support, monomial v (coeff v p) 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (p : MvPolynomial σ R)
Goal: p = ∑ v ∈ p.support, (MvPolynomial.monomial v) (MvPolynomial.coeff v p)
-- MvPolynomial.eval₂_eq
theorem eval₂_eq (g : R →+* S₁) (X : σ → S₁) (f : MvPolynomial σ R) :
    f.eval₂ g X = ∑ d ∈ f.support, g (f.coeff d) * ∏ i ∈ d.support, X i ^ d i 
Arguments: {R : Type u} {S₁ : Type v} {σ : Type u_1} [CommSemiring R] [CommSemiring S₁] (g : R →+* S₁) (X : σ → S₁) (f : MvPolynomial σ R)
Goal: MvPolynomial.eval₂ g X f = ∑ d ∈ f.support, g (MvPolynomial.coeff d f) * ∏ i ∈ d.support, X i ^ d i
-- MvPolynomial.eval₂_eq'
theorem eval₂_eq' [Fintype σ] (g : R →+* S₁) (X : σ → S₁) (f : MvPolynomial σ R) :
    f.eval₂ g X = ∑ d ∈ f.support, g (f.coeff d) * ∏ i, X i ^ d i 
Arguments: {R : Type u} {S₁ : Type v} {σ : Type u_1} [CommSemiring R] [CommSemiring S₁] [Fintype σ] (g : R →+* S₁) (X : σ → S₁) (f : MvPolynomial σ R)
Goal: MvPolynomial.eval₂ g X f = ∑ d ∈ f.support, g (MvPolynomial.coeff d f) * ∏ i : σ, X i ^ d i
-- MvPolynomial.eval₂_zero
@[simp]
theorem eval₂_zero : (0 : MvPolynomial σ R).eval₂ f g = 0 
Arguments: {R : Type u} {S₁ : Type v} {σ : Type u_1} [CommSemiring R] [CommSemiring S₁] (f : R →+* S₁) (g : σ → S₁)
Goal: MvPolynomial.eval₂ f g 0 = 0
-- MvPolynomial.eval₂_add
@[simp]
theorem eval₂_add : (p + q).eval₂ f g = p.eval₂ f g + q.eval₂ f g 
Arguments: {R : Type u} {S₁ : Type v} {σ : Type u_1} [CommSemiring R] [CommSemiring S₁] {p q : MvPolynomial σ R} (f : R →+* S₁) (g : σ → S₁)
Goal: MvPolynomial.eval₂ f g (p + q) = MvPolynomial.eval₂ f g p + MvPolynomial.eval₂ f g q
-- MvPolynomial.eval₂_monomial
@[simp]
theorem eval₂_monomial : (monomial s a).eval₂ f g = f a * s.prod fun n e => g n ^ e 
Arguments: {R : Type u} {S₁ : Type v} {σ : Type u_1} {a : R} {s : σ →₀ ℕ} [CommSemiring R] [CommSemiring S₁] (f : R →+* S₁) (g : σ → S₁)
Goal: MvPolynomial.eval₂ f g ((MvPolynomial.monomial s) a) = f a * s.prod fun n e => g n ^ e
-- MvPolynomial.eval₂_C
@[simp]
theorem eval₂_C (a) : (C a).eval₂ f g = f a 
Arguments: {R : Type u} {S₁ : Type v} {σ : Type u_1} [CommSemiring R] [CommSemiring S₁] (f : R →+* S₁) (g : σ → S₁) (a : R)
Goal: MvPolynomial.eval₂ f g (MvPolynomial.C a) = f a
-- MvPolynomial.eval₂_one
@[simp]
theorem eval₂_one : (1 : MvPolynomial σ R).eval₂ f g = 1 
Arguments: {R : Type u} {S₁ : Type v} {σ : Type u_1} [CommSemiring R] [CommSemiring S₁] (f : R →+* S₁) (g : σ → S₁)
Goal: MvPolynomial.eval₂ f g 1 = 1
-- MvPolynomial.eval₂_X
@[simp]
theorem eval₂_X (n) : (X n).eval₂ f g = g n 
Arguments: {R : Type u} {S₁ : Type v} {σ : Type u_1} [CommSemiring R] [CommSemiring S₁] (f : R →+* S₁) (g : σ → S₁) (n : σ)
Goal: MvPolynomial.eval₂ f g (MvPolynomial.X n) = g n
-- MvPolynomial.eval₂_mul_monomial
theorem eval₂_mul_monomial :
    ∀ {s a}, (p * monomial s a).eval₂ f g = p.eval₂ f g * f a * s.prod fun n e => g n ^ e 
Arguments: {R : Type u} {S₁ : Type v} {σ : Type u_1} [CommSemiring R] [CommSemiring S₁] {p : MvPolynomial σ R} (f : R →+* S₁) (g : σ → S₁) {s : σ →₀ ℕ} {a : R}
Goal: MvPolynomial.eval₂ f g (p * (MvPolynomial.monomial s) a) = MvPolynomial.eval₂ f g p * f a * s.prod fun n e => g n ^ e
-- MvPolynomial.eval₂_mul_C
theorem eval₂_mul_C : (p * C a).eval₂ f g = p.eval₂ f g * f a 
Arguments: {R : Type u} {S₁ : Type v} {σ : Type u_1} {a : R} [CommSemiring R] [CommSemiring S₁] {p : MvPolynomial σ R} (f : R →+* S₁) (g : σ → S₁)
Goal: MvPolynomial.eval₂ f g (p * MvPolynomial.C a) = MvPolynomial.eval₂ f g p * f a
-- MvPolynomial.eval₂_mul
@[simp]
theorem eval₂_mul : ∀ {p}, (p * q).eval₂ f g = p.eval₂ f g * q.eval₂ f g 
Arguments: {R : Type u} {S₁ : Type v} {σ : Type u_1} [CommSemiring R] [CommSemiring S₁] {q : MvPolynomial σ R} (f : R →+* S₁) (g : σ → S₁) {p : MvPolynomial σ R}
Goal: MvPolynomial.eval₂ f g (p * q) = MvPolynomial.eval₂ f g p * MvPolynomial.eval₂ f g q
-- MvPolynomial.eval₂_pow
@[simp]
theorem eval₂_pow {p : MvPolynomial σ R} : ∀ {n : ℕ}, (p ^ n).eval₂ f g = p.eval₂ f g ^ n
  
Arguments: {R : Type u} {S₁ : Type v} {σ : Type u_1} [CommSemiring R] [CommSemiring S₁] (f : R →+* S₁) (g : σ → S₁) {p : MvPolynomial σ R} {n : ℕ}
Goal: MvPolynomial.eval₂ f g (p ^ n) = MvPolynomial.eval₂ f g p ^ n
-- MvPolynomial.coe_eval₂Hom
@[simp]
theorem coe_eval₂Hom (f : R →+* S₁) (g : σ → S₁) : ⇑(eval₂Hom f g) = eval₂ f g 
Arguments: {R : Type u} {S₁ : Type v} {σ : Type u_1} [CommSemiring R] [CommSemiring S₁] (f : R →+* S₁) (g : σ → S₁)
Goal: ⇑(MvPolynomial.eval₂Hom f g) = MvPolynomial.eval₂ f g
-- MvPolynomial.eval₂Hom_congr
theorem eval₂Hom_congr {f₁ f₂ : R →+* S₁} {g₁ g₂ : σ → S₁} {p₁ p₂ : MvPolynomial σ R} :
    f₁ = f₂ → g₁ = g₂ → p₁ = p₂ → eval₂Hom f₁ g₁ p₁ = eval₂Hom f₂ g₂ p₂ 
Arguments: {R : Type u} {S₁ : Type v} {σ : Type u_1} [CommSemiring R] [CommSemiring S₁] {f₁ f₂ : R →+* S₁} {g₁ g₂ : σ → S₁} {p₁ p₂ : MvPolynomial σ R}
Goal: f₁ = f₂ → g₁ = g₂ → p₁ = p₂ → (MvPolynomial.eval₂Hom f₁ g₁) p₁ = (MvPolynomial.eval₂Hom f₂ g₂) p₂