ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- BialgebraCat.forget₂_algebra_map
@[simp]
theorem forget₂_algebra_map (X Y : BialgebraCat R) (f : X ⟶ Y) :
    (forget₂ (BialgebraCat R) (AlgebraCat R)).map f = (f.toBialgHom : X →ₐ[R] Y) 
Arguments: {R : Type u} [CommRing R] (X Y : BialgebraCat R) (f : X ⟶ Y)
Goal: (CategoryTheory.forget₂ (BialgebraCat R) (AlgebraCat R)).map f = ↑f.toBialgHom
-- BialgebraCat.forget₂_coalgebra_obj
@[simp]
theorem forget₂_coalgebra_obj (X : BialgebraCat R) :
    (forget₂ (BialgebraCat R) (CoalgebraCat R)).obj X = CoalgebraCat.of R X 
Arguments: {R : Type u} [CommRing R] (X : BialgebraCat R)
Goal: (CategoryTheory.forget₂ (BialgebraCat R) (CoalgebraCat R)).obj X = CoalgebraCat.of R ↑X.toBundled
-- BialgebraCat.forget₂_coalgebra_map
@[simp]
theorem forget₂_coalgebra_map (X Y : BialgebraCat R) (f : X ⟶ Y) :
    (forget₂ (BialgebraCat R) (CoalgebraCat R)).map f = CoalgebraCat.ofHom f.toBialgHom 
Arguments: {R : Type u} [CommRing R] (X Y : BialgebraCat R) (f : X ⟶ Y)
Goal: (CategoryTheory.forget₂ (BialgebraCat R) (CoalgebraCat R)).map f = CoalgebraCat.ofHom ↑f.toBialgHom
-- BialgEquiv.toBialgebraCatIso_hom_toBialgHom
@[simps]
def toBialgebraCatIso (e : X ≃ₐc[R] Y) : BialgebraCat.of R X ≅ BialgebraCat.of R Y 
Arguments: {R : Type u} [CommRing R] {X Y : Type v} [Ring X] [Ring Y] [Bialgebra R X] [Bialgebra R Y] (e : X ≃ₐc[R] Y)
Goal: e.toBialgebraCatIso.hom.toBialgHom = ↑e
-- BialgEquiv.toBialgebraCatIso_inv_toBialgHom
@[simps]
def toBialgebraCatIso (e : X ≃ₐc[R] Y) : BialgebraCat.of R X ≅ BialgebraCat.of R Y 
Arguments: {R : Type u} [CommRing R] {X Y : Type v} [Ring X] [Ring Y] [Bialgebra R X] [Bialgebra R Y] (e : X ≃ₐc[R] Y)
Goal: e.toBialgebraCatIso.inv.toBialgHom = ↑e.symm
-- BialgEquiv.toBialgebraCatIso_refl
@[simp] theorem toBialgebraCatIso_refl : toBialgebraCatIso (BialgEquiv.refl R X) = .refl _ 
Arguments: {R : Type u} [CommRing R] {X : Type v} [Ring X] [Bialgebra R X]
Goal: (BialgEquiv.refl R X).toBialgebraCatIso = CategoryTheory.Iso.refl (BialgebraCat.of R X)
-- BialgEquiv.toBialgebraCatIso_symm
@[simp] theorem toBialgebraCatIso_symm (e : X ≃ₐc[R] Y) :
    toBialgebraCatIso e.symm = (toBialgebraCatIso e).symm 
Arguments: {R : Type u} [CommRing R] {X Y : Type v} [Ring X] [Ring Y] [Bialgebra R X] [Bialgebra R Y] (e : X ≃ₐc[R] Y)
Goal: e.symm.toBialgebraCatIso = e.toBialgebraCatIso.symm
-- BialgEquiv.toBialgebraCatIso_trans
@[simp] theorem toBialgebraCatIso_trans (e : X ≃ₐc[R] Y) (f : Y ≃ₐc[R] Z) :
    toBialgebraCatIso (e.trans f) = toBialgebraCatIso e ≪≫ toBialgebraCatIso f 
Arguments: {R : Type u} [CommRing R] {X Y Z : Type v} [Ring X] [Ring Y] [Ring Z] [Bialgebra R X] [Bialgebra R Y] [Bialgebra R Z] (e : X ≃ₐc[R] Y) (f : Y ≃ₐc[R] Z)
Goal: (e.trans f).toBialgebraCatIso = e.toBialgebraCatIso ≪≫ f.toBialgebraCatIso
-- CategoryTheory.Iso.toBialgEquiv_toBialgHom
@[simp] theorem toBialgEquiv_toBialgHom (i : X ≅ Y) :
    (i.toBialgEquiv : X →ₐc[R] Y) = i.hom.1 
Arguments: {R : Type u} [CommRing R] {X Y : BialgebraCat R} (i : X ≅ Y)
Goal: ↑i.toBialgEquiv = i.hom.toBialgHom
-- CategoryTheory.Iso.toBialgEquiv_refl
@[simp] theorem toBialgEquiv_refl : toBialgEquiv (.refl X) = .refl _ _ 
Arguments: {R : Type u} [CommRing R] {X : BialgebraCat R}
Goal: (CategoryTheory.Iso.refl X).toBialgEquiv = BialgEquiv.refl R ↑X.toBundled
-- CategoryTheory.Iso.toBialgEquiv_symm
@[simp] theorem toBialgEquiv_symm (e : X ≅ Y) :
    toBialgEquiv e.symm = (toBialgEquiv e).symm 
Arguments: {R : Type u} [CommRing R] {X Y : BialgebraCat R} (e : X ≅ Y)
Goal: e.symm.toBialgEquiv = e.toBialgEquiv.symm
-- CategoryTheory.Iso.toBialgEquiv_trans
@[simp] theorem toBialgEquiv_trans (e : X ≅ Y) (f : Y ≅ Z) :
    toBialgEquiv (e ≪≫ f) = e.toBialgEquiv.trans f.toBialgEquiv 
Arguments: {R : Type u} [CommRing R] {X Y Z : BialgebraCat R} (e : X ≅ Y) (f : Y ≅ Z)
Goal: (e ≪≫ f).toBialgEquiv = e.toBialgEquiv.trans f.toBialgEquiv
-- MvPolynomial.single_eq_monomial
theorem single_eq_monomial (s : σ →₀ ℕ) (a : R) : Finsupp.single s a = monomial s a 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (s : σ →₀ ℕ) (a : R)
Goal: Finsupp.single s a = (MvPolynomial.monomial s) a
-- MvPolynomial.mul_def
theorem mul_def : p * q = p.sum fun m a => q.sum fun n b => monomial (m + n) (a * b) 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {p q : MvPolynomial σ R}
Goal: p * q = Finsupp.sum p fun m a => Finsupp.sum q fun n b => (MvPolynomial.monomial (m + n)) (a * b)
-- MvPolynomial.algebraMap_eq
@[simp]
theorem algebraMap_eq : algebraMap R (MvPolynomial σ R) = C 
Arguments: (R : Type u) (σ : Type u_1) [CommSemiring R]
Goal: algebraMap R (MvPolynomial σ R) = MvPolynomial.C
-- MvPolynomial.monomial_left_injective
theorem monomial_left_injective {r : R} (hr : r ≠ 0) :
    Function.Injective fun s : σ →₀ ℕ => monomial s r 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {r : R} (hr : r ≠ 0)
Goal: Function.Injective fun s => (MvPolynomial.monomial s) r
-- MvPolynomial.monomial_left_inj
@[simp]
theorem monomial_left_inj {s t : σ →₀ ℕ} {r : R} (hr : r ≠ 0) :
    monomial s r = monomial t r ↔ s = t 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {s t : σ →₀ ℕ} {r : R} (hr : r ≠ 0)
Goal: (MvPolynomial.monomial s) r = (MvPolynomial.monomial t) r ↔ s = t
-- MvPolynomial.C_apply
theorem C_apply : (C a : MvPolynomial σ R) = monomial 0 a 
Arguments: {R : Type u} {σ : Type u_1} {a : R} [CommSemiring R]
Goal: MvPolynomial.C a = (MvPolynomial.monomial 0) a
-- MvPolynomial.C_0
theorem C_0 : C 0 = (0 : MvPolynomial σ R) 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R]
Goal: MvPolynomial.C 0 = 0
-- MvPolynomial.C_1
theorem C_1 : C 1 = (1 : MvPolynomial σ R) 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R]
Goal: MvPolynomial.C 1 = 1
-- MvPolynomial.C_mul_monomial
theorem C_mul_monomial : C a * monomial s a' = monomial s (a * a') 
Arguments: {R : Type u} {σ : Type u_1} {a a' : R} {s : σ →₀ ℕ} [CommSemiring R]
Goal: MvPolynomial.C a * (MvPolynomial.monomial s) a' = (MvPolynomial.monomial s) (a * a')
-- MvPolynomial.C_add
theorem C_add : (C (a + a') : MvPolynomial σ R) = C a + C a' 
Arguments: {R : Type u} {σ : Type u_1} {a a' : R} [CommSemiring R]
Goal: MvPolynomial.C (a + a') = MvPolynomial.C a + MvPolynomial.C a'
-- MvPolynomial.C_mul
theorem C_mul : (C (a * a') : MvPolynomial σ R) = C a * C a' 
Arguments: {R : Type u} {σ : Type u_1} {a a' : R} [CommSemiring R]
Goal: MvPolynomial.C (a * a') = MvPolynomial.C a * MvPolynomial.C a'
-- MvPolynomial.C_pow
theorem C_pow (a : R) (n : ℕ) : (C (a ^ n) : MvPolynomial σ R) = C a ^ n 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (a : R) (n : ℕ)
Goal: MvPolynomial.C (a ^ n) = MvPolynomial.C a ^ n
-- MvPolynomial.C_injective
theorem C_injective (σ : Type*) (R : Type*) [CommSemiring R] :
    Function.Injective (C : R → MvPolynomial σ R) 
Arguments: (σ : Type u_2) (R : Type u_3) [CommSemiring R]
Goal: Function.Injective ⇑MvPolynomial.C
-- MvPolynomial.C_surjective
theorem C_surjective {R : Type*} [CommSemiring R] (σ : Type*) [IsEmpty σ] :
    Function.Surjective (C : R → MvPolynomial σ R) 
Arguments: {R : Type u_2} [CommSemiring R] (σ : Type u_3) [IsEmpty σ]
Goal: Function.Surjective ⇑MvPolynomial.C
-- MvPolynomial.C_inj
@[simp]
theorem C_inj {σ : Type*} (R : Type*) [CommSemiring R] (r s : R) :
    (C r : MvPolynomial σ R) = C s ↔ r = s 
Arguments: {σ : Type u_2} (R : Type u_3) [CommSemiring R] (r s : R)
Goal: MvPolynomial.C r = MvPolynomial.C s ↔ r = s
-- MvPolynomial.C_eq_coe_nat
theorem C_eq_coe_nat (n : ℕ) : (C ↑n : MvPolynomial σ R) = n 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (n : ℕ)
Goal: MvPolynomial.C ↑n = ↑n
-- MvPolynomial.C_mul'
theorem C_mul' : MvPolynomial.C a * p = a • p 
Arguments: {R : Type u} {σ : Type u_1} {a : R} [CommSemiring R] {p : MvPolynomial σ R}
Goal: MvPolynomial.C a * p = a • p
-- MvPolynomial.smul_eq_C_mul
theorem smul_eq_C_mul (p : MvPolynomial σ R) (a : R) : a • p = C a * p 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (p : MvPolynomial σ R) (a : R)
Goal: a • p = MvPolynomial.C a * p
-- MvPolynomial.C_eq_smul_one
theorem C_eq_smul_one : (C a : MvPolynomial σ R) = a • (1 : MvPolynomial σ R) 
Arguments: {R : Type u} {σ : Type u_1} {a : R} [CommSemiring R]
Goal: MvPolynomial.C a = a • 1
-- MvPolynomial.smul_monomial
theorem smul_monomial {S₁ : Type*} [SMulZeroClass S₁ R] (r : S₁) :
    r • monomial s a = monomial s (r • a) 
Arguments: {R : Type u} {σ : Type u_1} {a : R} {s : σ →₀ ℕ} [CommSemiring R] {S₁ : Type u_2} [SMulZeroClass S₁ R] (r : S₁)
Goal: r • (MvPolynomial.monomial s) a = (MvPolynomial.monomial s) (r • a)
-- MvPolynomial.X_injective
theorem X_injective [Nontrivial R] : Function.Injective (X : σ → MvPolynomial σ R) 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [Nontrivial R]
Goal: Function.Injective MvPolynomial.X
-- MvPolynomial.X_inj
@[simp]
theorem X_inj [Nontrivial R] (m n : σ) : X m = (X n : MvPolynomial σ R) ↔ m = n 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [Nontrivial R] (m n : σ)
Goal: MvPolynomial.X m = MvPolynomial.X n ↔ m = n
-- MvPolynomial.monomial_pow
theorem monomial_pow : monomial s a ^ e = monomial (e • s) (a ^ e) 
Arguments: {R : Type u} {σ : Type u_1} {a : R} {e : ℕ} {s : σ →₀ ℕ} [CommSemiring R]
Goal: (MvPolynomial.monomial s) a ^ e = (MvPolynomial.monomial (e • s)) (a ^ e)
-- MvPolynomial.monomial_mul
@[simp]
theorem monomial_mul {s s' : σ →₀ ℕ} {a b : R} :
    monomial s a * monomial s' b = monomial (s + s') (a * b) 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {s s' : σ →₀ ℕ} {a b : R}
Goal: (MvPolynomial.monomial s) a * (MvPolynomial.monomial s') b = (MvPolynomial.monomial (s + s')) (a * b)
-- MvPolynomial.monomialOneHom_apply
@[simp]
theorem monomialOneHom_apply : monomialOneHom R σ s = (monomial s 1 : MvPolynomial σ R) 
Arguments: {R : Type u} {σ : Type u_1} {s : σ →₀ ℕ} [CommSemiring R]
Goal: (MvPolynomial.monomialOneHom R σ) s = (MvPolynomial.monomial s) 1
-- MvPolynomial.X_pow_eq_monomial
theorem X_pow_eq_monomial : X n ^ e = monomial (Finsupp.single n e) (1 : R) 
Arguments: {R : Type u} {σ : Type u_1} {e : ℕ} {n : σ} [CommSemiring R]
Goal: MvPolynomial.X n ^ e = (MvPolynomial.monomial (Finsupp.single n e)) 1
-- MvPolynomial.monomial_add_single
theorem monomial_add_single : monomial (s + Finsupp.single n e) a = monomial s a * X n ^ e 
Arguments: {R : Type u} {σ : Type u_1} {a : R} {e : ℕ} {n : σ} {s : σ →₀ ℕ} [CommSemiring R]
Goal: (MvPolynomial.monomial (s + Finsupp.single n e)) a = (MvPolynomial.monomial s) a * MvPolynomial.X n ^ e
-- MvPolynomial.monomial_single_add
theorem monomial_single_add : monomial (Finsupp.single n e + s) a = X n ^ e * monomial s a 
Arguments: {R : Type u} {σ : Type u_1} {a : R} {e : ℕ} {n : σ} {s : σ →₀ ℕ} [CommSemiring R]
Goal: (MvPolynomial.monomial (Finsupp.single n e + s)) a = MvPolynomial.X n ^ e * (MvPolynomial.monomial s) a
-- MvPolynomial.C_mul_X_pow_eq_monomial
theorem C_mul_X_pow_eq_monomial {s : σ} {a : R} {n : ℕ} :
    C a * X s ^ n = monomial (Finsupp.single s n) a 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {s : σ} {a : R} {n : ℕ}
Goal: MvPolynomial.C a * MvPolynomial.X s ^ n = (MvPolynomial.monomial (Finsupp.single s n)) a
-- MvPolynomial.C_mul_X_eq_monomial
theorem C_mul_X_eq_monomial {s : σ} {a : R} : C a * X s = monomial (Finsupp.single s 1) a 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {s : σ} {a : R}
Goal: MvPolynomial.C a * MvPolynomial.X s = (MvPolynomial.monomial (Finsupp.single s 1)) a
-- MvPolynomial.monomial_zero
theorem monomial_zero {s : σ →₀ ℕ} : monomial s (0 : R) = 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {s : σ →₀ ℕ}
Goal: (MvPolynomial.monomial s) 0 = 0
-- MvPolynomial.monomial_zero'
@[simp]
theorem monomial_zero' : (monomial (0 : σ →₀ ℕ) : R → MvPolynomial σ R) = C 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R]
Goal: ⇑(MvPolynomial.monomial 0) = ⇑MvPolynomial.C
-- MvPolynomial.monomial_eq_zero
@[simp]
theorem monomial_eq_zero {s : σ →₀ ℕ} {b : R} : monomial s b = 0 ↔ b = 0 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {s : σ →₀ ℕ} {b : R}
Goal: (MvPolynomial.monomial s) b = 0 ↔ b = 0
-- MvPolynomial.sum_monomial_eq
@[simp]
theorem sum_monomial_eq {A : Type*} [AddCommMonoid A] {u : σ →₀ ℕ} {r : R} {b : (σ →₀ ℕ) → R → A}
    (w : b u 0 = 0) : sum (monomial u r) b = b u r 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {A : Type u_2} [AddCommMonoid A] {u : σ →₀ ℕ} {r : R} {b : (σ →₀ ℕ) → R → A} (w : b u 0 = 0)
Goal: Finsupp.sum ((MvPolynomial.monomial u) r) b = b u r
-- MvPolynomial.sum_C
@[simp]
theorem sum_C {A : Type*} [AddCommMonoid A] {b : (σ →₀ ℕ) → R → A} (w : b 0 0 = 0) :
    sum (C a) b = b 0 a 
Arguments: {R : Type u} {σ : Type u_1} {a : R} [CommSemiring R] {A : Type u_2} [AddCommMonoid A] {b : (σ →₀ ℕ) → R → A} (w : b 0 0 = 0)
Goal: Finsupp.sum (MvPolynomial.C a) b = b 0 a
-- MvPolynomial.monomial_sum_one
theorem monomial_sum_one {α : Type*} (s : Finset α) (f : α → σ →₀ ℕ) :
    (monomial (∑ i ∈ s, f i) 1 : MvPolynomial σ R) = ∏ i ∈ s, monomial (f i) 1 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {α : Type u_2} (s : Finset α) (f : α → σ →₀ ℕ)
Goal: (MvPolynomial.monomial (∑ i ∈ s, f i)) 1 = ∏ i ∈ s, (MvPolynomial.monomial (f i)) 1
-- MvPolynomial.monomial_sum_index
theorem monomial_sum_index {α : Type*} (s : Finset α) (f : α → σ →₀ ℕ) (a : R) :
    monomial (∑ i ∈ s, f i) a = C a * ∏ i ∈ s, monomial (f i) 1 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {α : Type u_2} (s : Finset α) (f : α → σ →₀ ℕ) (a : R)
Goal: (MvPolynomial.monomial (∑ i ∈ s, f i)) a = MvPolynomial.C a * ∏ i ∈ s, (MvPolynomial.monomial (f i)) 1
-- MvPolynomial.monomial_finsupp_sum_index
theorem monomial_finsupp_sum_index {α β : Type*} [Zero β] (f : α →₀ β) (g : α → β → σ →₀ ℕ)
    (a : R) : monomial (f.sum g) a = C a * f.prod fun a b => monomial (g a b) 1 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {α : Type u_2} {β : Type u_3} [Zero β] (f : α →₀ β) (g : α → β → σ →₀ ℕ) (a : R)
Goal: (MvPolynomial.monomial (f.sum g)) a = MvPolynomial.C a * f.prod fun a b => (MvPolynomial.monomial (g a b)) 1
-- MvPolynomial.monomial_eq_monomial_iff
theorem monomial_eq_monomial_iff {α : Type*} (a₁ a₂ : α →₀ ℕ) (b₁ b₂ : R) :
    monomial a₁ b₁ = monomial a₂ b₂ ↔ a₁ = a₂ ∧ b₁ = b₂ ∨ b₁ = 0 ∧ b₂ = 0 
Arguments: {R : Type u} [CommSemiring R] {α : Type u_2} (a₁ a₂ : α →₀ ℕ) (b₁ b₂ : R)
Goal: (MvPolynomial.monomial a₁) b₁ = (MvPolynomial.monomial a₂) b₂ ↔ a₁ = a₂ ∧ b₁ = b₂ ∨ b₁ = 0 ∧ b₂ = 0
-- MvPolynomial.monomial_eq
theorem monomial_eq : monomial s a = C a * (s.prod fun n e => X n ^ e : MvPolynomial σ R) 
Arguments: {R : Type u} {σ : Type u_1} {a : R} {s : σ →₀ ℕ} [CommSemiring R]
Goal: (MvPolynomial.monomial s) a = MvPolynomial.C a * s.prod fun n e => MvPolynomial.X n ^ e
-- MvPolynomial.prod_X_pow_eq_monomial
@[simp]
lemma prod_X_pow_eq_monomial : ∏ x ∈ s.support, X x ^ s x = monomial s (1 : R) 
Arguments: {R : Type u} {σ : Type u_1} {s : σ →₀ ℕ} [CommSemiring R]
Goal: ∏ x ∈ s.support, MvPolynomial.X x ^ s x = (MvPolynomial.monomial s) 1
-- MvPolynomial.induction_on_monomial
theorem induction_on_monomial {M : MvPolynomial σ R → Prop} (h_C : ∀ a, M (C a))
    (h_X : ∀ p n, M p → M (p * X n)) : ∀ s a, M (monomial s a) 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {M : MvPolynomial σ R → Prop} (h_C : ∀ (a : R), M (MvPolynomial.C a)) (h_X : ∀ (p : MvPolynomial σ R) (n : σ), M p → M (p * MvPolynomial.X n)) (s : σ →₀ ℕ) (a : R)
Goal: M ((MvPolynomial.monomial s) a)
-- MvPolynomial.induction_on'
@[elab_as_elim]
theorem induction_on' {P : MvPolynomial σ R → Prop} (p : MvPolynomial σ R)
    (h1 : ∀ (u : σ →₀ ℕ) (a : R), P (monomial u a))
    (h2 : ∀ p q : MvPolynomial σ R, P p → P q → P (p + q)) : P p 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {P : MvPolynomial σ R → Prop} (p : MvPolynomial σ R) (h1 : ∀ (u : σ →₀ ℕ) (a : R), P ((MvPolynomial.monomial u) a)) (h2 : ∀ (p q : MvPolynomial σ R), P p → P q → P (p + q))
Goal: P p
-- MvPolynomial.induction_on'''
theorem induction_on''' {M : MvPolynomial σ R → Prop} (p : MvPolynomial σ R) (h_C : ∀ a, M (C a))
    (h_add_weak :
      ∀ (a : σ →₀ ℕ) (b : R) (f : (σ →₀ ℕ) →₀ R),
        a ∉ f.support → b ≠ 0 → M f → M ((show (σ →₀ ℕ) →₀ R from monomial a b) + f)) :
    M p 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {M : MvPolynomial σ R → Prop} (p : MvPolynomial σ R) (h_C : ∀ (a : R), M (MvPolynomial.C a)) (h_add_weak :
  ∀ (a : σ →₀ ℕ) (b : R) (f : (σ →₀ ℕ) →₀ R),
    a ∉ f.support →
      b ≠ 0 →
        M f →
          M
            ((let_fun this := (MvPolynomial.monomial a) b;
              this) +
              f))
Goal: M p
-- MvPolynomial.induction_on''
theorem induction_on'' {M : MvPolynomial σ R → Prop} (p : MvPolynomial σ R) (h_C : ∀ a, M (C a))
    (h_add_weak :
      ∀ (a : σ →₀ ℕ) (b : R) (f : (σ →₀ ℕ) →₀ R),
        a ∉ f.support → b ≠ 0 → M f → M (monomial a b) →
          M ((show (σ →₀ ℕ) →₀ R from monomial a b) + f))
    (h_X : ∀ (p : MvPolynomial σ R) (n : σ), M p → M (p * MvPolynomial.X n)) : M p 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {M : MvPolynomial σ R → Prop} (p : MvPolynomial σ R) (h_C : ∀ (a : R), M (MvPolynomial.C a)) (h_add_weak :
  ∀ (a : σ →₀ ℕ) (b : R) (f : (σ →₀ ℕ) →₀ R),
    a ∉ f.support →
      b ≠ 0 →
        M f →
          M ((MvPolynomial.monomial a) b) →
            M
              ((let_fun this := (MvPolynomial.monomial a) b;
                this) +
                f)) (h_X : ∀ (p : MvPolynomial σ R) (n : σ), M p → M (p * MvPolynomial.X n))
Goal: M p
-- MvPolynomial.induction_on
@[recursor 5]
theorem induction_on {M : MvPolynomial σ R → Prop} (p : MvPolynomial σ R) (h_C : ∀ a, M (C a))
    (h_add : ∀ p q, M p → M q → M (p + q)) (h_X : ∀ p n, M p → M (p * X n)) : M p 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {M : MvPolynomial σ R → Prop} (p : MvPolynomial σ R) (h_C : ∀ (a : R), M (MvPolynomial.C a)) (h_add : ∀ (p q : MvPolynomial σ R), M p → M q → M (p + q)) (h_X : ∀ (p : MvPolynomial σ R) (n : σ), M p → M (p * MvPolynomial.X n))
Goal: M p
-- MvPolynomial.ringHom_ext
theorem ringHom_ext {A : Type*} [Semiring A] {f g : MvPolynomial σ R →+* A}
    (hC : ∀ r, f (C r) = g (C r)) (hX : ∀ i, f (X i) = g (X i)) : f = g 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {A : Type u_2} [Semiring A] {f g : MvPolynomial σ R →+* A} (hC : ∀ (r : R), f (MvPolynomial.C r) = g (MvPolynomial.C r)) (hX : ∀ (i : σ), f (MvPolynomial.X i) = g (MvPolynomial.X i))
Goal: f = g
-- MvPolynomial.ringHom_ext'
@[ext 1100]
theorem ringHom_ext' {A : Type*} [Semiring A] {f g : MvPolynomial σ R →+* A}
    (hC : f.comp C = g.comp C) (hX : ∀ i, f (X i) = g (X i)) : f = g 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {A : Type u_2} [Semiring A] {f g : MvPolynomial σ R →+* A} (hC : f.comp MvPolynomial.C = g.comp MvPolynomial.C) (hX : ∀ (i : σ), f (MvPolynomial.X i) = g (MvPolynomial.X i))
Goal: f = g
-- MvPolynomial.hom_eq_hom
theorem hom_eq_hom [Semiring S₂] (f g : MvPolynomial σ R →+* S₂) (hC : f.comp C = g.comp C)
    (hX : ∀ n : σ, f (X n) = g (X n)) (p : MvPolynomial σ R) : f p = g p 
Arguments: {R : Type u} {S₂ : Type w} {σ : Type u_1} [CommSemiring R] [Semiring S₂] (f g : MvPolynomial σ R →+* S₂) (hC : f.comp MvPolynomial.C = g.comp MvPolynomial.C) (hX : ∀ (n : σ), f (MvPolynomial.X n) = g (MvPolynomial.X n)) (p : MvPolynomial σ R)
Goal: f p = g p
-- MvPolynomial.is_id
theorem is_id (f : MvPolynomial σ R →+* MvPolynomial σ R) (hC : f.comp C = C)
    (hX : ∀ n : σ, f (X n) = X n) (p : MvPolynomial σ R) : f p = p 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (f : MvPolynomial σ R →+* MvPolynomial σ R) (hC : f.comp MvPolynomial.C = MvPolynomial.C) (hX : ∀ (n : σ), f (MvPolynomial.X n) = MvPolynomial.X n) (p : MvPolynomial σ R)
Goal: f p = p
-- MvPolynomial.algHom_ext'
@[ext 1100]
theorem algHom_ext' {A B : Type*} [CommSemiring A] [CommSemiring B] [Algebra R A] [Algebra R B]
    {f g : MvPolynomial σ A →ₐ[R] B}
    (h₁ :
      f.comp (IsScalarTower.toAlgHom R A (MvPolynomial σ A)) =
        g.comp (IsScalarTower.toAlgHom R A (MvPolynomial σ A)))
    (h₂ : ∀ i, f (X i) = g (X i)) : f = g 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {A : Type u_2} {B : Type u_3} [CommSemiring A] [CommSemiring B] [Algebra R A] [Algebra R B] {f g : MvPolynomial σ A →ₐ[R] B} (h₁ : f.comp (IsScalarTower.toAlgHom R A (MvPolynomial σ A)) = g.comp (IsScalarTower.toAlgHom R A (MvPolynomial σ A))) (h₂ : ∀ (i : σ), f (MvPolynomial.X i) = g (MvPolynomial.X i))
Goal: f = g
-- MvPolynomial.algHom_ext
@[ext 1200]
theorem algHom_ext {A : Type*} [Semiring A] [Algebra R A] {f g : MvPolynomial σ R →ₐ[R] A}
    (hf : ∀ i : σ, f (X i) = g (X i)) : f = g 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {A : Type u_2} [Semiring A] [Algebra R A] {f g : MvPolynomial σ R →ₐ[R] A} (hf : ∀ (i : σ), f (MvPolynomial.X i) = g (MvPolynomial.X i))
Goal: f = g
-- MvPolynomial.algHom_C
@[simp]
theorem algHom_C {A : Type*} [Semiring A] [Algebra R A] (f : MvPolynomial σ R →ₐ[R] A) (r : R) :
    f (C r) = algebraMap R A r 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {A : Type u_2} [Semiring A] [Algebra R A] (f : MvPolynomial σ R →ₐ[R] A) (r : R)
Goal: f (MvPolynomial.C r) = (algebraMap R A) r
-- MvPolynomial.adjoin_range_X
@[simp]
theorem adjoin_range_X : Algebra.adjoin R (range (X : σ → MvPolynomial σ R)) = ⊤ 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R]
Goal: Algebra.adjoin R (Set.range MvPolynomial.X) = ⊤
-- MvPolynomial.linearMap_ext
@[ext]
theorem linearMap_ext {M : Type*} [AddCommMonoid M] [Module R M] {f g : MvPolynomial σ R →ₗ[R] M}
    (h : ∀ s, f ∘ₗ monomial s = g ∘ₗ monomial s) : f = g 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {M : Type u_2} [AddCommMonoid M] [Module R M] {f g : MvPolynomial σ R →ₗ[R] M} (h : ∀ (s : σ →₀ ℕ), f ∘ₗ MvPolynomial.monomial s = g ∘ₗ MvPolynomial.monomial s)
Goal: f = g
-- MvPolynomial.finsupp_support_eq_support
theorem finsupp_support_eq_support (p : MvPolynomial σ R) : Finsupp.support p = p.support 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] (p : MvPolynomial σ R)
Goal: p.support = p.support
-- MvPolynomial.support_monomial
theorem support_monomial [h : Decidable (a = 0)] :
    (monomial s a).support = if a = 0 then ∅ else {s} 
Arguments: {R : Type u} {σ : Type u_1} {a : R} {s : σ →₀ ℕ} [CommSemiring R] [h : Decidable (a = 0)]
Goal: ((MvPolynomial.monomial s) a).support = if a = 0 then ∅ else {s}
-- MvPolynomial.support_monomial_subset
theorem support_monomial_subset : (monomial s a).support ⊆ {s} 
Arguments: {R : Type u} {σ : Type u_1} {a : R} {s : σ →₀ ℕ} [CommSemiring R]
Goal: ((MvPolynomial.monomial s) a).support ⊆ {s}
-- MvPolynomial.support_add
theorem support_add [DecidableEq σ] : (p + q).support ⊆ p.support ∪ q.support 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {p q : MvPolynomial σ R} [DecidableEq σ]
Goal: (p + q).support ⊆ p.support ∪ q.support
-- MvPolynomial.support_X
theorem support_X [Nontrivial R] : (X n : MvPolynomial σ R).support = {Finsupp.single n 1} 
Arguments: {R : Type u} {σ : Type u_1} {n : σ} [CommSemiring R] [Nontrivial R]
Goal: (MvPolynomial.X n).support = {Finsupp.single n 1}
-- MvPolynomial.support_X_pow
theorem support_X_pow [Nontrivial R] (s : σ) (n : ℕ) :
    (X s ^ n : MvPolynomial σ R).support = {Finsupp.single s n} 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] [Nontrivial R] (s : σ) (n : ℕ)
Goal: (MvPolynomial.X s ^ n).support = {Finsupp.single s n}
-- MvPolynomial.support_zero
@[simp]
theorem support_zero : (0 : MvPolynomial σ R).support = ∅ 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R]
Goal: MvPolynomial.support 0 = ∅
-- MvPolynomial.support_smul
theorem support_smul {S₁ : Type*} [SMulZeroClass S₁ R] {a : S₁} {f : MvPolynomial σ R} :
    (a • f).support ⊆ f.support 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {S₁ : Type u_2} [SMulZeroClass S₁ R] {a : S₁} {f : MvPolynomial σ R}
Goal: (a • f).support ⊆ f.support
-- MvPolynomial.support_sum
theorem support_sum {α : Type*} [DecidableEq σ] {s : Finset α} {f : α → MvPolynomial σ R} :
    (∑ x ∈ s, f x).support ⊆ s.biUnion fun x => (f x).support 
Arguments: {R : Type u} {σ : Type u_1} [CommSemiring R] {α : Type u_2} [DecidableEq σ] {s : Finset α} {f : α → MvPolynomial σ R}
Goal: (∑ x ∈ s, f x).support ⊆ s.biUnion fun x => (f x).support