ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- AlgebraicGeometry.Scheme.stalkSpecializes_stalkMap
@[reassoc]
lemma stalkSpecializes_stalkMap (x x' : X)
    (h : x ⤳ x') : Y.presheaf.stalkSpecializes (f.val.base.map_specializes h) ≫ f.stalkMap x =
      f.stalkMap x' ≫ X.presheaf.stalkSpecializes h 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (x x' : ↑↑X.toPresheafedSpace) (h : x ⤳ x')
Goal: Y.presheaf.stalkSpecializes ⋯ ≫ AlgebraicGeometry.Scheme.Hom.stalkMap f x =
  AlgebraicGeometry.Scheme.Hom.stalkMap f x' ≫ X.presheaf.stalkSpecializes h
-- AlgebraicGeometry.Scheme.stalkSpecializes_stalkMap_apply
lemma stalkSpecializes_stalkMap_apply (x x' : X) (h : x ⤳ x') (y) :
    f.stalkMap x (Y.presheaf.stalkSpecializes (f.val.base.map_specializes h) y) =
      (X.presheaf.stalkSpecializes h (f.stalkMap x' y)) 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (x x' : ↑↑X.toPresheafedSpace) (h : x ⤳ x') (y : ↑(Y.presheaf.stalk (f.val.base x')))
Goal: (AlgebraicGeometry.Scheme.Hom.stalkMap f x) ((Y.presheaf.stalkSpecializes ⋯) y) =
  (X.presheaf.stalkSpecializes h) ((AlgebraicGeometry.Scheme.Hom.stalkMap f x') y)
-- AlgebraicGeometry.Scheme.stalkMap_congr
@[reassoc]
lemma stalkMap_congr (f g : X ⟶ Y) (hfg : f = g) (x x' : X)
    (hxx' : x = x') : f.stalkMap x ≫ X.presheaf.stalkSpecializes (specializes_of_eq hxx'.symm) =
      Y.presheaf.stalkSpecializes (specializes_of_eq <| hfg ▸ hxx' ▸ rfl) ≫ g.stalkMap x' 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f g : X ⟶ Y) (hfg : f = g) (x x' : ↑↑X.toPresheafedSpace) (hxx' : x = x')
Goal: AlgebraicGeometry.Scheme.Hom.stalkMap f x ≫ X.presheaf.stalkSpecializes ⋯ =
  Y.presheaf.stalkSpecializes ⋯ ≫ AlgebraicGeometry.Scheme.Hom.stalkMap g x'
-- AlgebraicGeometry.Scheme.stalkMap_congr_hom
@[reassoc]
lemma stalkMap_congr_hom (f g : X ⟶ Y) (hfg : f = g) (x : X) :
    f.stalkMap x = Y.presheaf.stalkSpecializes (specializes_of_eq <| hfg ▸ rfl) ≫
      g.stalkMap x 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f g : X ⟶ Y) (hfg : f = g) (x : ↑↑X.toPresheafedSpace)
Goal: AlgebraicGeometry.Scheme.Hom.stalkMap f x = Y.presheaf.stalkSpecializes ⋯ ≫ AlgebraicGeometry.Scheme.Hom.stalkMap g x
-- AlgebraicGeometry.Scheme.stalkMap_congr_point
@[reassoc]
lemma stalkMap_congr_point (x x' : X) (hxx' : x = x') :
    f.stalkMap x ≫ X.presheaf.stalkSpecializes (specializes_of_eq hxx'.symm) =
      Y.presheaf.stalkSpecializes (specializes_of_eq <| hxx' ▸ rfl) ≫ f.stalkMap x' 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (x x' : ↑↑X.toPresheafedSpace) (hxx' : x = x')
Goal: AlgebraicGeometry.Scheme.Hom.stalkMap f x ≫ X.presheaf.stalkSpecializes ⋯ =
  Y.presheaf.stalkSpecializes ⋯ ≫ AlgebraicGeometry.Scheme.Hom.stalkMap f x'
-- AlgebraicGeometry.Scheme.stalkMap_hom_inv
@[reassoc (attr := simp)]
lemma stalkMap_hom_inv (e : X ≅ Y) (y : Y) :
    e.hom.stalkMap (e.inv.val.base y) ≫ e.inv.stalkMap y =
      Y.presheaf.stalkSpecializes (specializes_of_eq <| by simp) 
Arguments: {X Y : AlgebraicGeometry.Scheme} (e : X ≅ Y) (y : ↑↑Y.toPresheafedSpace)
Goal: AlgebraicGeometry.Scheme.Hom.stalkMap e.hom (e.inv.val.base y) ≫ AlgebraicGeometry.Scheme.Hom.stalkMap e.inv y =
  Y.presheaf.stalkSpecializes ⋯
-- AlgebraicGeometry.Scheme.stalkMap_hom_inv_apply
@[simp]
lemma stalkMap_hom_inv_apply (e : X ≅ Y) (y : Y) (z) :
    e.inv.stalkMap y (e.hom.stalkMap (e.inv.val.base y) z) =
      Y.presheaf.stalkSpecializes (specializes_of_eq <| by simp) z 
Arguments: {X Y : AlgebraicGeometry.Scheme} (e : X ≅ Y) (y : ↑↑Y.toPresheafedSpace) (z : ↑(Y.presheaf.stalk (e.hom.val.base (e.inv.val.base y))))
Goal: (AlgebraicGeometry.Scheme.Hom.stalkMap e.inv y) ((AlgebraicGeometry.Scheme.Hom.stalkMap e.hom (e.inv.val.base y)) z) =
  (Y.presheaf.stalkSpecializes ⋯) z
-- AlgebraicGeometry.Scheme.stalkMap_inv_hom
@[reassoc (attr := simp)]
lemma stalkMap_inv_hom (e : X ≅ Y) (x : X) :
    e.inv.stalkMap (e.hom.val.base x) ≫ e.hom.stalkMap x =
      X.presheaf.stalkSpecializes (specializes_of_eq <| by simp) 
Arguments: {X Y : AlgebraicGeometry.Scheme} (e : X ≅ Y) (x : ↑↑X.toPresheafedSpace)
Goal: AlgebraicGeometry.Scheme.Hom.stalkMap e.inv (e.hom.val.base x) ≫ AlgebraicGeometry.Scheme.Hom.stalkMap e.hom x =
  X.presheaf.stalkSpecializes ⋯
-- AlgebraicGeometry.Scheme.stalkMap_inv_hom_apply
@[simp]
lemma stalkMap_inv_hom_apply (e : X ≅ Y) (x : X) (y) :
    e.hom.stalkMap x (e.inv.stalkMap (e.hom.val.base x) y) =
      X.presheaf.stalkSpecializes (specializes_of_eq <| by simp) y 
Arguments: {X Y : AlgebraicGeometry.Scheme} (e : X ≅ Y) (x : ↑↑X.toPresheafedSpace) (y : ↑(X.presheaf.stalk (e.inv.val.base (e.hom.val.base x))))
Goal: (AlgebraicGeometry.Scheme.Hom.stalkMap e.hom x) ((AlgebraicGeometry.Scheme.Hom.stalkMap e.inv (e.hom.val.base x)) y) =
  (X.presheaf.stalkSpecializes ⋯) y
-- AlgebraicGeometry.Scheme.stalkMap_germ
@[reassoc]
lemma stalkMap_germ (U : Y.Opens) (x : f ⁻¹ᵁ U) :
    Y.presheaf.germ ⟨f.val.base x.val, x.property⟩ ≫ f.stalkMap x =
      f.app U ≫ X.presheaf.germ x 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (U : Y.Opens) (x : ↥((TopologicalSpace.Opens.map f.val.base).obj U))
Goal: Y.presheaf.germ ⟨f.val.base ↑x, ⋯⟩ ≫ AlgebraicGeometry.Scheme.Hom.stalkMap f ↑x =
  AlgebraicGeometry.Scheme.Hom.app f U ≫ X.presheaf.germ x
-- AlgebraicGeometry.Scheme.stalkMap_germ_apply
lemma stalkMap_germ_apply (U : Y.Opens) (x : f ⁻¹ᵁ U) (y) :
    f.stalkMap x.val (Y.presheaf.germ ⟨f.val.base x.val, x.property⟩ y) =
      X.presheaf.germ x (f.val.c.app (op U) y) 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (U : Y.Opens) (x : ↥((TopologicalSpace.Opens.map f.val.base).obj U)) (y : ↑(Y.presheaf.obj (Opposite.op U)))
Goal: (AlgebraicGeometry.Scheme.Hom.stalkMap f ↑x) ((Y.presheaf.germ ⟨f.val.base ↑x, ⋯⟩) y) =
  (X.presheaf.germ x) ((f.val.c.app (Opposite.op U)) y)
-- AlgebraicGeometry.Scheme.stalkMap_germ'
@[reassoc (attr := simp)]
lemma stalkMap_germ' (U : Y.Opens) (x : X) (hx : f.val.base x ∈ U) :
    Y.presheaf.germ ⟨f.val.base x, hx⟩ ≫ f.stalkMap x =
      f.app U ≫ X.presheaf.germ (U := f⁻¹ᵁ U) ⟨x, hx⟩ 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (U : Y.Opens) (x : ↑↑X.toPresheafedSpace) (hx : f.val.base x ∈ U)
Goal: Y.presheaf.germ ⟨f.val.base x, hx⟩ ≫ AlgebraicGeometry.Scheme.Hom.stalkMap f x =
  AlgebraicGeometry.Scheme.Hom.app f U ≫ X.presheaf.germ ⟨x, hx⟩
-- AlgebraicGeometry.Scheme.stalkMap_germ'_apply
@[simp]
lemma stalkMap_germ'_apply (U : Y.Opens) (x : X) (hx : f.val.base x ∈ U) (y) :
    f.stalkMap x (Y.presheaf.germ ⟨f.val.base x, hx⟩ y) =
      X.presheaf.germ (U := (Opens.map f.val.base).obj U) ⟨x, hx⟩ (f.val.c.app (op U) y) 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) (U : Y.Opens) (x : ↑↑X.toPresheafedSpace) (hx : f.val.base x ∈ U) (y : ↑(Y.presheaf.obj (Opposite.op U)))
Goal: (AlgebraicGeometry.Scheme.Hom.stalkMap f x) ((Y.presheaf.germ ⟨f.val.base x, hx⟩) y) =
  (X.presheaf.germ ⟨x, hx⟩) ((f.val.c.app (Opposite.op U)) y)
-- MonoidAlgebra.single_zero
theorem single_zero (a : G) : (single a 0 : MonoidAlgebra k G) = 0 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] (a : G)
Goal: MonoidAlgebra.single a 0 = 0
-- MonoidAlgebra.single_add
theorem single_add (a : G) (b₁ b₂ : k) : single a (b₁ + b₂) = single a b₁ + single a b₂ 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] (a : G) (b₁ b₂ : k)
Goal: MonoidAlgebra.single a (b₁ + b₂) = MonoidAlgebra.single a b₁ + MonoidAlgebra.single a b₂
-- MonoidAlgebra.sum_single_index
@[simp]
theorem sum_single_index {N} [AddCommMonoid N] {a : G} {b : k} {h : G → k → N}
    (h_zero : h a 0 = 0) :
    (single a b).sum h = h a b 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] {N : Type u_3} [AddCommMonoid N] {a : G} {b : k} {h : G → k → N} (h_zero : h a 0 = 0)
Goal: Finsupp.sum (MonoidAlgebra.single a b) h = h a b
-- MonoidAlgebra.sum_single
@[simp]
theorem sum_single (f : MonoidAlgebra k G) : f.sum single = f 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] (f : MonoidAlgebra k G)
Goal: Finsupp.sum f MonoidAlgebra.single = f
-- MonoidAlgebra.single_apply
theorem single_apply {a a' : G} {b : k} [Decidable (a = a')] :
    single a b a' = if a = a' then b else 0 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] {a a' : G} {b : k} [Decidable (a = a')]
Goal: (MonoidAlgebra.single a b) a' = if a = a' then b else 0
-- MonoidAlgebra.single_eq_zero
@[simp]
theorem single_eq_zero {a : G} {b : k} : single a b = 0 ↔ b = 0 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] {a : G} {b : k}
Goal: MonoidAlgebra.single a b = 0 ↔ b = 0
-- MonoidAlgebra.mapDomain_sum
theorem mapDomain_sum {k' G' : Type*} [Semiring k'] {f : G → G'} {s : MonoidAlgebra k' G}
    {v : G → k' → MonoidAlgebra k G} :
    mapDomain f (s.sum v) = s.sum fun a b => mapDomain f (v a b) 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] {k' : Type u_3} {G' : Type u_4} [Semiring k'] {f : G → G'} {s : MonoidAlgebra k' G} {v : G → k' → MonoidAlgebra k G}
Goal: MonoidAlgebra.mapDomain f (Finsupp.sum s v) = Finsupp.sum s fun a b => MonoidAlgebra.mapDomain f (v a b)
-- MonoidAlgebra.liftNC_single
@[simp]
theorem liftNC_single (f : k →+ R) (g : G → R) (a : G) (b : k) :
    liftNC f g (single a b) = f b * g a 
Arguments: {k : Type u₁} {G : Type u₂} {R : Type u_2} [Semiring k] [NonUnitalNonAssocSemiring R] (f : k →+ R) (g : G → R) (a : G) (b : k)
Goal: (MonoidAlgebra.liftNC f g) (MonoidAlgebra.single a b) = f b * g a
-- MonoidAlgebra.mul_def
theorem mul_def {f g : MonoidAlgebra k G} :
    f * g = f.sum fun a₁ b₁ => g.sum fun a₂ b₂ => single (a₁ * a₂) (b₁ * b₂) 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Mul G] {f g : MonoidAlgebra k G}
Goal: f * g = Finsupp.sum f fun a₁ b₁ => Finsupp.sum g fun a₂ b₂ => MonoidAlgebra.single (a₁ * a₂) (b₁ * b₂)
-- MonoidAlgebra.liftNC_mul
theorem liftNC_mul {g_hom : Type*} [FunLike g_hom G R] [MulHomClass g_hom G R]
    (f : k →+* R) (g : g_hom) (a b : MonoidAlgebra k G)
    (h_comm : ∀ {x y}, y ∈ a.support → Commute (f (b x)) (g y)) :
    liftNC (f : k →+ R) g (a * b) = liftNC (f : k →+ R) g a * liftNC (f : k →+ R) g b 
Arguments: {k : Type u₁} {G : Type u₂} {R : Type u_2} [Semiring k] [Mul G] [Semiring R] {g_hom : Type u_3} [FunLike g_hom G R] [MulHomClass g_hom G R] (f : k →+* R) (g : g_hom) (a b : MonoidAlgebra k G) (h_comm : ∀ {x y : G}, y ∈ a.support → Commute (f (b x)) (g y))
Goal: (MonoidAlgebra.liftNC ↑f ⇑g) (a * b) = (MonoidAlgebra.liftNC ↑f ⇑g) a * (MonoidAlgebra.liftNC ↑f ⇑g) b
-- MonoidAlgebra.one_def
theorem one_def : (1 : MonoidAlgebra k G) = single 1 1 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [One G]
Goal: 1 = MonoidAlgebra.single 1 1
-- MonoidAlgebra.liftNC_one
@[simp]
theorem liftNC_one {g_hom : Type*} [FunLike g_hom G R] [OneHomClass g_hom G R]
    (f : k →+* R) (g : g_hom) :
    liftNC (f : k →+ R) g 1 = 1 
Arguments: {k : Type u₁} {G : Type u₂} {R : Type u_2} [NonAssocSemiring R] [Semiring k] [One G] {g_hom : Type u_3} [FunLike g_hom G R] [OneHomClass g_hom G R] (f : k →+* R) (g : g_hom)
Goal: (MonoidAlgebra.liftNC ↑f ⇑g) 1 = 1
-- MonoidAlgebra.natCast_def
theorem natCast_def (n : ℕ) : (n : MonoidAlgebra k G) = single (1 : G) (n : k) 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [MulOneClass G] (n : ℕ)
Goal: ↑n = MonoidAlgebra.single 1 ↑n
-- MonoidAlgebra.intCast_def
theorem intCast_def [Ring k] [MulOneClass G] (z : ℤ) :
    (z : MonoidAlgebra k G) = single (1 : G) (z : k) 
Arguments: {k : Type u₁} {G : Type u₂} [Ring k] [MulOneClass G] (z : ℤ)
Goal: ↑z = MonoidAlgebra.single 1 ↑z
-- MonoidAlgebra.mul_apply
theorem mul_apply [DecidableEq G] [Mul G] (f g : MonoidAlgebra k G) (x : G) :
    (f * g) x = f.sum fun a₁ b₁ => g.sum fun a₂ b₂ => if a₁ * a₂ = x then b₁ * b₂ else 0 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [DecidableEq G] [Mul G] (f g : MonoidAlgebra k G) (x : G)
Goal: (f * g) x = Finsupp.sum f fun a₁ b₁ => Finsupp.sum g fun a₂ b₂ => if a₁ * a₂ = x then b₁ * b₂ else 0
-- MonoidAlgebra.mul_apply_antidiagonal
theorem mul_apply_antidiagonal [Mul G] (f g : MonoidAlgebra k G) (x : G) (s : Finset (G × G))
    (hs : ∀ {p : G × G}, p ∈ s ↔ p.1 * p.2 = x) : (f * g) x = ∑ p ∈ s, f p.1 * g p.2 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Mul G] (f g : MonoidAlgebra k G) (x : G) (s : Finset (G × G)) (hs : ∀ {p : G × G}, p ∈ s ↔ p.1 * p.2 = x)
Goal: (f * g) x = ∑ p ∈ s, f p.1 * g p.2
-- MonoidAlgebra.single_mul_single
@[simp]
theorem single_mul_single [Mul G] {a₁ a₂ : G} {b₁ b₂ : k} :
    single a₁ b₁ * single a₂ b₂ = single (a₁ * a₂) (b₁ * b₂) 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Mul G] {a₁ a₂ : G} {b₁ b₂ : k}
Goal: MonoidAlgebra.single a₁ b₁ * MonoidAlgebra.single a₂ b₂ = MonoidAlgebra.single (a₁ * a₂) (b₁ * b₂)
-- MonoidAlgebra.single_commute_single
theorem single_commute_single [Mul G] {a₁ a₂ : G} {b₁ b₂ : k}
    (ha : Commute a₁ a₂) (hb : Commute b₁ b₂) :
    Commute (single a₁ b₁) (single a₂ b₂) 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Mul G] {a₁ a₂ : G} {b₁ b₂ : k} (ha : Commute a₁ a₂) (hb : Commute b₁ b₂)
Goal: Commute (MonoidAlgebra.single a₁ b₁) (MonoidAlgebra.single a₂ b₂)
-- MonoidAlgebra.single_commute
theorem single_commute [Mul G] {a : G} {b : k} (ha : ∀ a', Commute a a') (hb : ∀ b', Commute b b') :
    ∀ f : MonoidAlgebra k G, Commute (single a b) f 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Mul G] {a : G} {b : k} (ha : ∀ (a' : G), Commute a a') (hb : ∀ (b' : k), Commute b b') (f : MonoidAlgebra k G)
Goal: Commute (MonoidAlgebra.single a b) f
-- MonoidAlgebra.single_pow
@[simp]
theorem single_pow [Monoid G] {a : G} {b : k} : ∀ n : ℕ, single a b ^ n = single (a ^ n) (b ^ n)
  
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Monoid G] {a : G} {b : k} (n : ℕ)
Goal: MonoidAlgebra.single a b ^ n = MonoidAlgebra.single (a ^ n) (b ^ n)
-- MonoidAlgebra.mapDomain_one
@[simp]
theorem mapDomain_one {α : Type*} {β : Type*} {α₂ : Type*} [Semiring β] [One α] [One α₂]
    {F : Type*} [FunLike F α α₂] [OneHomClass F α α₂] (f : F) :
    (mapDomain f (1 : MonoidAlgebra β α) : MonoidAlgebra β α₂) = (1 : MonoidAlgebra β α₂) 
Arguments: {α : Type u_3} {β : Type u_4} {α₂ : Type u_5} [Semiring β] [One α] [One α₂] {F : Type u_6} [FunLike F α α₂] [OneHomClass F α α₂] (f : F)
Goal: MonoidAlgebra.mapDomain (⇑f) 1 = 1
-- MonoidAlgebra.mapDomain_mul
theorem mapDomain_mul {α : Type*} {β : Type*} {α₂ : Type*} [Semiring β] [Mul α] [Mul α₂]
    {F : Type*} [FunLike F α α₂] [MulHomClass F α α₂] (f : F) (x y : MonoidAlgebra β α) :
    mapDomain f (x * y) = mapDomain f x * mapDomain f y 
Arguments: {α : Type u_3} {β : Type u_4} {α₂ : Type u_5} [Semiring β] [Mul α] [Mul α₂] {F : Type u_6} [FunLike F α α₂] [MulHomClass F α α₂] (f : F) (x y : MonoidAlgebra β α)
Goal: MonoidAlgebra.mapDomain (⇑f) (x * y) = MonoidAlgebra.mapDomain (⇑f) x * MonoidAlgebra.mapDomain (⇑f) y
-- MonoidAlgebra.ofMagma_apply
@[simps]
def ofMagma [Mul G] : G →ₙ* MonoidAlgebra k G 
Arguments: (k : Type u₁) (G : Type u₂) [Semiring k] [Mul G] (a : G)
Goal: (MonoidAlgebra.ofMagma k G) a = MonoidAlgebra.single a 1
-- MonoidAlgebra.of_apply
@[simps]
def of [MulOneClass G] : G →* MonoidAlgebra k G 
Arguments: (k : Type u₁) (G : Type u₂) [Semiring k] [MulOneClass G] (a : G)
Goal: (MonoidAlgebra.of k G) a = MonoidAlgebra.single a 1
-- MonoidAlgebra.smul_of
theorem smul_of [MulOneClass G] (g : G) (r : k) : r • of k G g = single g r 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [MulOneClass G] (g : G) (r : k)
Goal: r • (MonoidAlgebra.of k G) g = MonoidAlgebra.single g r
-- MonoidAlgebra.of_injective
theorem of_injective [MulOneClass G] [Nontrivial k] :
    Function.Injective (of k G) 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [MulOneClass G] [Nontrivial k]
Goal: Function.Injective ⇑(MonoidAlgebra.of k G)
-- MonoidAlgebra.of_commute
theorem of_commute [MulOneClass G] {a : G} (h : ∀ a', Commute a a') (f : MonoidAlgebra k G) :
    Commute (of k G a) f 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [MulOneClass G] {a : G} (h : ∀ (a' : G), Commute a a') (f : MonoidAlgebra k G)
Goal: Commute ((MonoidAlgebra.of k G) a) f
-- MonoidAlgebra.singleHom_apply
@[simps]
def singleHom [MulOneClass G] : k × G →* MonoidAlgebra k G 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [MulOneClass G] (a : k × G)
Goal: MonoidAlgebra.singleHom a = MonoidAlgebra.single a.2 a.1
-- MonoidAlgebra.mul_single_apply_aux
theorem mul_single_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
    (H : ∀ a, a * x = z ↔ a = y) : (f * single x r) z = f y * r 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G} (H : ∀ (a : G), a * x = z ↔ a = y)
Goal: (f * MonoidAlgebra.single x r) z = f y * r
-- MonoidAlgebra.mul_single_one_apply
theorem mul_single_one_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x : G) :
    (HMul.hMul (β := MonoidAlgebra k G) f (single 1 r)) x = f x * r 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x : G)
Goal: (f * MonoidAlgebra.single 1 r) x = f x * r
-- MonoidAlgebra.mul_single_apply_of_not_exists_mul
theorem mul_single_apply_of_not_exists_mul [Mul G] (r : k) {g g' : G} (x : MonoidAlgebra k G)
    (h : ¬∃ d, g' = d * g) : (x * single g r) g' = 0 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Mul G] (r : k) {g g' : G} (x : MonoidAlgebra k G) (h : ¬∃ d, g' = d * g)
Goal: (x * MonoidAlgebra.single g r) g' = 0
-- MonoidAlgebra.single_mul_apply_aux
theorem single_mul_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
    (H : ∀ a, x * a = y ↔ a = z) : (single x r * f) y = r * f z 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G} (H : ∀ (a : G), x * a = y ↔ a = z)
Goal: (MonoidAlgebra.single x r * f) y = r * f z
-- MonoidAlgebra.single_one_mul_apply
theorem single_one_mul_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x : G) :
    (single (1 : G) r * f) x = r * f x 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x : G)
Goal: (MonoidAlgebra.single 1 r * f) x = r * f x
-- MonoidAlgebra.single_mul_apply_of_not_exists_mul
theorem single_mul_apply_of_not_exists_mul [Mul G] (r : k) {g g' : G} (x : MonoidAlgebra k G)
    (h : ¬∃ d, g' = g * d) : (single g r * x) g' = 0 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Mul G] (r : k) {g g' : G} (x : MonoidAlgebra k G) (h : ¬∃ d, g' = g * d)
Goal: (MonoidAlgebra.single g r * x) g' = 0
-- MonoidAlgebra.liftNC_smul
theorem liftNC_smul [MulOneClass G] {R : Type*} [Semiring R] (f : k →+* R) (g : G →* R) (c : k)
    (φ : MonoidAlgebra k G) : liftNC (f : k →+ R) g (c • φ) = f c * liftNC (f : k →+ R) g φ 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [MulOneClass G] {R : Type u_3} [Semiring R] (f : k →+* R) (g : G →* R) (c : k) (φ : MonoidAlgebra k G)
Goal: (MonoidAlgebra.liftNC ↑f ⇑g) (c • φ) = f c * (MonoidAlgebra.liftNC ↑f ⇑g) φ
-- MonoidAlgebra.nonUnitalAlgHom_ext
theorem nonUnitalAlgHom_ext [DistribMulAction k A] {φ₁ φ₂ : MonoidAlgebra k G →ₙₐ[k] A}
    (h : ∀ x, φ₁ (single x 1) = φ₂ (single x 1)) : φ₁ = φ₂ 
Arguments: (k : Type u₁) {G : Type u₂} [Semiring k] [Mul G] {A : Type u₃} [NonUnitalNonAssocSemiring A] [DistribMulAction k A] {φ₁ φ₂ : MonoidAlgebra k G →ₙₐ[k] A} (h : ∀ (x : G), φ₁ (MonoidAlgebra.single x 1) = φ₂ (MonoidAlgebra.single x 1))
Goal: φ₁ = φ₂
-- MonoidAlgebra.nonUnitalAlgHom_ext'
@[ext high]
theorem nonUnitalAlgHom_ext' [DistribMulAction k A] {φ₁ φ₂ : MonoidAlgebra k G →ₙₐ[k] A}
    (h : φ₁.toMulHom.comp (ofMagma k G) = φ₂.toMulHom.comp (ofMagma k G)) : φ₁ = φ₂ 
Arguments: (k : Type u₁) {G : Type u₂} [Semiring k] [Mul G] {A : Type u₃} [NonUnitalNonAssocSemiring A] [DistribMulAction k A] {φ₁ φ₂ : MonoidAlgebra k G →ₙₐ[k] A} (h : φ₁.toMulHom.comp (MonoidAlgebra.ofMagma k G) = φ₂.toMulHom.comp (MonoidAlgebra.ofMagma k G))
Goal: φ₁ = φ₂
-- MonoidAlgebra.liftMagma_symm_apply
@[simps apply_apply symm_apply]
def liftMagma [Module k A] [IsScalarTower k A A] [SMulCommClass k A A] :
    (G →ₙ* A) ≃ (MonoidAlgebra k G →ₙₐ[k] A) 
Arguments: (k : Type u₁) {G : Type u₂} [Semiring k] [Mul G] {A : Type u₃} [NonUnitalNonAssocSemiring A] [Module k A] [IsScalarTower k A A] [SMulCommClass k A A] (F : MonoidAlgebra k G →ₙₐ[k] A)
Goal: (MonoidAlgebra.liftMagma k).symm F = F.toMulHom.comp (MonoidAlgebra.ofMagma k G)
-- MonoidAlgebra.liftMagma_apply_apply
@[simps apply_apply symm_apply]
def liftMagma [Module k A] [IsScalarTower k A A] [SMulCommClass k A A] :
    (G →ₙ* A) ≃ (MonoidAlgebra k G →ₙₐ[k] A) 
Arguments: (k : Type u₁) {G : Type u₂} [Semiring k] [Mul G] {A : Type u₃} [NonUnitalNonAssocSemiring A] [Module k A] [IsScalarTower k A A] [SMulCommClass k A A] (f : G →ₙ* A) (a : MonoidAlgebra k G)
Goal: ((MonoidAlgebra.liftMagma k) f) a = Finsupp.sum a fun m t => t • f m
-- MonoidAlgebra.single_one_comm
theorem single_one_comm [CommSemiring k] [MulOneClass G] (r : k) (f : MonoidAlgebra k G) :
    single (1 : G) r * f = f * single (1 : G) r 
Arguments: {k : Type u₁} {G : Type u₂} [CommSemiring k] [MulOneClass G] (r : k) (f : MonoidAlgebra k G)
Goal: MonoidAlgebra.single 1 r * f = f * MonoidAlgebra.single 1 r
-- MonoidAlgebra.singleOneRingHom_apply
@[simps]
def singleOneRingHom [Semiring k] [MulOneClass G] : k →+* MonoidAlgebra k G 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [MulOneClass G]
Goal: ∀ (a : k), MonoidAlgebra.singleOneRingHom a = (↑(Finsupp.singleAddHom 1)).toFun a
-- MonoidAlgebra.mapDomainRingHom_apply
@[simps]
def mapDomainRingHom (k : Type*) {H F : Type*} [Semiring k] [Monoid G] [Monoid H]
    [FunLike F G H] [MonoidHomClass F G H] (f : F) : MonoidAlgebra k G →+* MonoidAlgebra k H 
Arguments: {G : Type u₂} (k : Type u_3) {H : Type u_4} {F : Type u_5} [Semiring k] [Monoid G] [Monoid H] [FunLike F G H] [MonoidHomClass F G H] (f : F)
Goal: ∀ (a : G →₀ k), (MonoidAlgebra.mapDomainRingHom k f) a = (↑(Finsupp.mapDomain.addMonoidHom ⇑f)).toFun a
-- MonoidAlgebra.ringHom_ext
theorem ringHom_ext {R} [Semiring k] [MulOneClass G] [Semiring R] {f g : MonoidAlgebra k G →+* R}
    (h₁ : ∀ b, f (single 1 b) = g (single 1 b)) (h_of : ∀ a, f (single a 1) = g (single a 1)) :
    f = g 
Arguments: {k : Type u₁} {G : Type u₂} {R : Type u_3} [Semiring k] [MulOneClass G] [Semiring R] {f g : MonoidAlgebra k G →+* R} (h₁ : ∀ (b : k), f (MonoidAlgebra.single 1 b) = g (MonoidAlgebra.single 1 b)) (h_of : ∀ (a : G), f (MonoidAlgebra.single a 1) = g (MonoidAlgebra.single a 1))
Goal: f = g
-- MonoidAlgebra.ringHom_ext'
@[ext high]
theorem ringHom_ext' {R} [Semiring k] [MulOneClass G] [Semiring R] {f g : MonoidAlgebra k G →+* R}
    (h₁ : f.comp singleOneRingHom = g.comp singleOneRingHom)
    (h_of :
      (f : MonoidAlgebra k G →* R).comp (of k G) = (g : MonoidAlgebra k G →* R).comp (of k G)) :
    f = g 
Arguments: {k : Type u₁} {G : Type u₂} {R : Type u_3} [Semiring k] [MulOneClass G] [Semiring R] {f g : MonoidAlgebra k G →+* R} (h₁ : f.comp MonoidAlgebra.singleOneRingHom = g.comp MonoidAlgebra.singleOneRingHom) (h_of : (↑f).comp (MonoidAlgebra.of k G) = (↑g).comp (MonoidAlgebra.of k G))
Goal: f = g
-- MonoidAlgebra.singleOneAlgHom_apply
@[simps! apply]
def singleOneAlgHom {A : Type*} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G] :
    A →ₐ[k] MonoidAlgebra A G 
Arguments: {k : Type u₁} {G : Type u₂} {A : Type u_3} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G]
Goal: ∀ (a : A), MonoidAlgebra.singleOneAlgHom a = Finsupp.single 1 a
-- MonoidAlgebra.coe_algebraMap
@[simp]
theorem coe_algebraMap {A : Type*} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G] :
    ⇑(algebraMap k (MonoidAlgebra A G)) = single 1 ∘ algebraMap k A 
Arguments: {k : Type u₁} {G : Type u₂} {A : Type u_3} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G]
Goal: ⇑(algebraMap k (MonoidAlgebra A G)) = MonoidAlgebra.single 1 ∘ ⇑(algebraMap k A)
-- MonoidAlgebra.single_eq_algebraMap_mul_of
theorem single_eq_algebraMap_mul_of [CommSemiring k] [Monoid G] (a : G) (b : k) :
    single a b = algebraMap k (MonoidAlgebra k G) b * of k G a 
Arguments: {k : Type u₁} {G : Type u₂} [CommSemiring k] [Monoid G] (a : G) (b : k)
Goal: MonoidAlgebra.single a b = (algebraMap k (MonoidAlgebra k G)) b * (MonoidAlgebra.of k G) a