File: Mathlib/Algebra/MvPolynomial/CommRing.lean

full_name: MvPolynomial.instCommRingMvPolynomial
code: instance instCommRingMvPolynomial : CommRing (MvPolynomial σ R) 
goal: CommRing (MvPolynomial σ R)

full_name: MvPolynomial.C_sub
code: theorem C_sub : (C (a - a') : MvPolynomial σ R) = C a - C a' 
goal: MvPolynomial.C (a - a') = MvPolynomial.C a - MvPolynomial.C a'

full_name: MvPolynomial.C_neg
code: theorem C_neg : (C (-a) : MvPolynomial σ R) = -C a 
goal: MvPolynomial.C (-a) = -MvPolynomial.C a

full_name: MvPolynomial.coeff_neg
code: @[simp]
theorem coeff_neg (m : σ →₀ ℕ) (p : MvPolynomial σ R) : coeff m (-p) = -coeff m p 
goal: MvPolynomial.coeff m (-p) = -MvPolynomial.coeff m p

full_name: MvPolynomial.coeff_sub
code: @[simp]
theorem coeff_sub (m : σ →₀ ℕ) (p q : MvPolynomial σ R) : coeff m (p - q) = coeff m p - coeff m q 
goal: MvPolynomial.coeff m (p - q) = MvPolynomial.coeff m p - MvPolynomial.coeff m q

full_name: MvPolynomial.support_neg
code: @[simp]
theorem support_neg : (-p).support = p.support 
goal: (-p).support = p.support

full_name: MvPolynomial.support_sub
code: theorem support_sub [DecidableEq σ] (p q : MvPolynomial σ R) :
    (p - q).support ⊆ p.support ∪ q.support 
goal: (p - q).support ⊆ p.support ∪ q.support

full_name: MvPolynomial.degrees_neg
code: theorem degrees_neg (p : MvPolynomial σ R) : (-p).degrees = p.degrees 
goal: (-p).degrees = p.degrees

full_name: MvPolynomial.degrees_sub
code: theorem degrees_sub [DecidableEq σ] (p q : MvPolynomial σ R) :
    (p - q).degrees ≤ p.degrees ⊔ q.degrees 
goal: (p - q).degrees ≤ p.degrees ⊔ q.degrees

full_name: MvPolynomial.vars_neg
code: @[simp]
theorem vars_neg : (-p).vars = p.vars 
goal: (-p).vars = p.vars

full_name: MvPolynomial.vars_sub_subset
code: theorem vars_sub_subset [DecidableEq σ] : (p - q).vars ⊆ p.vars ∪ q.vars 
goal: (p - q).vars ⊆ p.vars ∪ q.vars

full_name: MvPolynomial.vars_sub_of_disjoint
code: @[simp]
theorem vars_sub_of_disjoint [DecidableEq σ] (hpq : Disjoint p.vars q.vars) :
    (p - q).vars = p.vars ∪ q.vars 
goal: (p - q).vars = p.vars ∪ q.vars

full_name: MvPolynomial.eval₂_sub
code: @[simp]
theorem eval₂_sub : (p - q).eval₂ f g = p.eval₂ f g - q.eval₂ f g 
goal: MvPolynomial.eval₂ f g (p - q) = MvPolynomial.eval₂ f g p - MvPolynomial.eval₂ f g q

full_name: MvPolynomial.eval_sub
code: theorem eval_sub (f : σ → R) : eval f (p - q) = eval f p - eval f q 
goal: (MvPolynomial.eval f) (p - q) = (MvPolynomial.eval f) p - (MvPolynomial.eval f) q

full_name: MvPolynomial.eval₂_neg
code: @[simp]
theorem eval₂_neg : (-p).eval₂ f g = -p.eval₂ f g 
goal: MvPolynomial.eval₂ f g (-p) = -MvPolynomial.eval₂ f g p

full_name: MvPolynomial.eval_neg
code: theorem eval_neg (f : σ → R) : eval f (-p) = -eval f p 
goal: (MvPolynomial.eval f) (-p) = -(MvPolynomial.eval f) p

full_name: MvPolynomial.hom_C
code: theorem hom_C (f : MvPolynomial σ ℤ →+* S) (n : ℤ) : f (C n) = (n : S) 
goal: f (MvPolynomial.C n) = ↑n

full_name: MvPolynomial.eval₂Hom_X
code: /-- A ring homomorphism f : Z[X_1, X_2, ...] → R
is determined by the evaluations f(X_1), f(X_2), ... -/
@[simp]
theorem eval₂Hom_X {R : Type u} (c : ℤ →+* S) (f : MvPolynomial R ℤ →+* S) (x : MvPolynomial R ℤ) :
    eval₂ c (f ∘ X) x = f x 
goal: MvPolynomial.eval₂ c (⇑f ∘ MvPolynomial.X) x = f x

full_name: MvPolynomial.homEquiv
code: /-- Ring homomorphisms out of integer polynomials on a type `σ` are the same as
functions out of the type `σ`, -/
def homEquiv : (MvPolynomial σ ℤ →+* S) ≃ (σ → S) 
goal: (MvPolynomial σ ℤ →+* S) ≃ (σ → S)

full_name: MvPolynomial.degreeOf_sub_lt
code: theorem degreeOf_sub_lt {x : σ} {f g : MvPolynomial σ R} {k : ℕ} (h : 0 < k)
    (hf : ∀ m : σ →₀ ℕ, m ∈ f.support → k ≤ m x → coeff m f = coeff m g)
    (hg : ∀ m : σ →₀ ℕ, m ∈ g.support → k ≤ m x → coeff m f = coeff m g) :
    degreeOf x (f - g) < k 
goal: MvPolynomial.degreeOf x (f - g) < k

full_name: MvPolynomial.totalDegree_neg
code: @[simp]
theorem totalDegree_neg (a : MvPolynomial σ R) : (-a).totalDegree = a.totalDegree 
goal: (-a).totalDegree = a.totalDegree

full_name: MvPolynomial.totalDegree_sub
code: theorem totalDegree_sub (a b : MvPolynomial σ R) :
    (a - b).totalDegree ≤ max a.totalDegree b.totalDegree 
goal: (a - b).totalDegree ≤ max a.totalDegree b.totalDegree

full_name: MvPolynomial.totalDegree_sub_C_le
code: theorem totalDegree_sub_C_le (p : MvPolynomial σ R) (r : R) :
    totalDegree (p - C r) ≤ totalDegree p 
goal: (p - MvPolynomial.C r).totalDegree ≤ p.totalDegree