ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- MonoidAlgebra.single_algebraMap_eq_algebraMap_mul_of
theorem single_algebraMap_eq_algebraMap_mul_of {A : Type*} [CommSemiring k] [Semiring A]
    [Algebra k A] [Monoid G] (a : G) (b : k) :
    single a (algebraMap k A b) = algebraMap k (MonoidAlgebra A G) b * of A G a 
Arguments: {k : Type u₁} {G : Type u₂} {A : Type u_3} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G] (a : G) (b : k)
Goal: MonoidAlgebra.single a ((algebraMap k A) b) = (algebraMap k (MonoidAlgebra A G)) b * (MonoidAlgebra.of A G) a
-- MonoidAlgebra.induction_on
theorem induction_on [Semiring k] [Monoid G] {p : MonoidAlgebra k G → Prop} (f : MonoidAlgebra k G)
    (hM : ∀ g, p (of k G g)) (hadd : ∀ f g : MonoidAlgebra k G, p f → p g → p (f + g))
    (hsmul : ∀ (r : k) (f), p f → p (r • f)) : p f 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Monoid G] {p : MonoidAlgebra k G → Prop} (f : MonoidAlgebra k G) (hM : ∀ (g : G), p ((MonoidAlgebra.of k G) g)) (hadd : ∀ (f g : MonoidAlgebra k G), p f → p g → p (f + g)) (hsmul : ∀ (r : k) (f : MonoidAlgebra k G), p f → p (r • f))
Goal: p f
-- MonoidAlgebra.algHom_ext
theorem algHom_ext ⦃φ₁ φ₂ : MonoidAlgebra k G →ₐ[k] A⦄
    (h : ∀ x, φ₁ (single x 1) = φ₂ (single x 1)) : φ₁ = φ₂ 
Arguments: {k : Type u₁} {G : Type u₂} [CommSemiring k] [Monoid G] {A : Type u₃} [Semiring A] [Algebra k A] ⦃φ₁ φ₂ : MonoidAlgebra k G →ₐ[k] A⦄ (h : ∀ (x : G), φ₁ (MonoidAlgebra.single x 1) = φ₂ (MonoidAlgebra.single x 1))
Goal: φ₁ = φ₂
-- MonoidAlgebra.algHom_ext'
@[ext high]
theorem algHom_ext' ⦃φ₁ φ₂ : MonoidAlgebra k G →ₐ[k] A⦄
    (h :
      (φ₁ : MonoidAlgebra k G →* A).comp (of k G) = (φ₂ : MonoidAlgebra k G →* A).comp (of k G)) :
    φ₁ = φ₂ 
Arguments: {k : Type u₁} {G : Type u₂} [CommSemiring k] [Monoid G] {A : Type u₃} [Semiring A] [Algebra k A] ⦃φ₁ φ₂ : MonoidAlgebra k G →ₐ[k] A⦄ (h : (↑φ₁).comp (MonoidAlgebra.of k G) = (↑φ₂).comp (MonoidAlgebra.of k G))
Goal: φ₁ = φ₂
-- MonoidAlgebra.lift_apply'
theorem lift_apply' (F : G →* A) (f : MonoidAlgebra k G) :
    lift k G A F f = f.sum fun a b => algebraMap k A b * F a 
Arguments: {k : Type u₁} {G : Type u₂} [CommSemiring k] [Monoid G] {A : Type u₃} [Semiring A] [Algebra k A] (F : G →* A) (f : MonoidAlgebra k G)
Goal: ((MonoidAlgebra.lift k G A) F) f = Finsupp.sum f fun a b => (algebraMap k A) b * F a
-- MonoidAlgebra.lift_apply
theorem lift_apply (F : G →* A) (f : MonoidAlgebra k G) :
    lift k G A F f = f.sum fun a b => b • F a 
Arguments: {k : Type u₁} {G : Type u₂} [CommSemiring k] [Monoid G] {A : Type u₃} [Semiring A] [Algebra k A] (F : G →* A) (f : MonoidAlgebra k G)
Goal: ((MonoidAlgebra.lift k G A) F) f = Finsupp.sum f fun a b => b • F a
-- MonoidAlgebra.lift_def
theorem lift_def (F : G →* A) : ⇑(lift k G A F) = liftNC ((algebraMap k A : k →+* A) : k →+ A) F 
Arguments: {k : Type u₁} {G : Type u₂} [CommSemiring k] [Monoid G] {A : Type u₃} [Semiring A] [Algebra k A] (F : G →* A)
Goal: ⇑((MonoidAlgebra.lift k G A) F) = ⇑(MonoidAlgebra.liftNC ↑(algebraMap k A) ⇑F)
-- MonoidAlgebra.lift_symm_apply
@[simp]
theorem lift_symm_apply (F : MonoidAlgebra k G →ₐ[k] A) (x : G) :
    (lift k G A).symm F x = F (single x 1) 
Arguments: {k : Type u₁} {G : Type u₂} [CommSemiring k] [Monoid G] {A : Type u₃} [Semiring A] [Algebra k A] (F : MonoidAlgebra k G →ₐ[k] A) (x : G)
Goal: ((MonoidAlgebra.lift k G A).symm F) x = F (MonoidAlgebra.single x 1)
-- MonoidAlgebra.lift_single
@[simp]
theorem lift_single (F : G →* A) (a b) : lift k G A F (single a b) = b • F a 
Arguments: {k : Type u₁} {G : Type u₂} [CommSemiring k] [Monoid G] {A : Type u₃} [Semiring A] [Algebra k A] (F : G →* A) (a : G) (b : k)
Goal: ((MonoidAlgebra.lift k G A) F) (MonoidAlgebra.single a b) = b • F a
-- MonoidAlgebra.lift_of
theorem lift_of (F : G →* A) (x) : lift k G A F (of k G x) = F x 
Arguments: {k : Type u₁} {G : Type u₂} [CommSemiring k] [Monoid G] {A : Type u₃} [Semiring A] [Algebra k A] (F : G →* A) (x : G)
Goal: ((MonoidAlgebra.lift k G A) F) ((MonoidAlgebra.of k G) x) = F x
-- MonoidAlgebra.lift_unique'
theorem lift_unique' (F : MonoidAlgebra k G →ₐ[k] A) :
    F = lift k G A ((F : MonoidAlgebra k G →* A).comp (of k G)) 
Arguments: {k : Type u₁} {G : Type u₂} [CommSemiring k] [Monoid G] {A : Type u₃} [Semiring A] [Algebra k A] (F : MonoidAlgebra k G →ₐ[k] A)
Goal: F = (MonoidAlgebra.lift k G A) ((↑F).comp (MonoidAlgebra.of k G))
-- MonoidAlgebra.lift_unique
theorem lift_unique (F : MonoidAlgebra k G →ₐ[k] A) (f : MonoidAlgebra k G) :
    F f = f.sum fun a b => b • F (single a 1) 
Arguments: {k : Type u₁} {G : Type u₂} [CommSemiring k] [Monoid G] {A : Type u₃} [Semiring A] [Algebra k A] (F : MonoidAlgebra k G →ₐ[k] A) (f : MonoidAlgebra k G)
Goal: F f = Finsupp.sum f fun a b => b • F (MonoidAlgebra.single a 1)
-- MonoidAlgebra.mapDomainNonUnitalAlgHom_apply
@[simps apply]
def mapDomainNonUnitalAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebra k A]
    {G H F : Type*} [Mul G] [Mul H] [FunLike F G H] [MulHomClass F G H] (f : F) :
    MonoidAlgebra A G →ₙₐ[k] MonoidAlgebra A H 
Arguments: (k : Type u_4) (A : Type u_5) [CommSemiring k] [Semiring A] [Algebra k A] {G : Type u_6} {H : Type u_7} {F : Type u_8} [Mul G] [Mul H] [FunLike F G H] [MulHomClass F G H] (f : F)
Goal: ∀ (a : G →₀ A), (MonoidAlgebra.mapDomainNonUnitalAlgHom k A f) a = (↑(Finsupp.mapDomain.addMonoidHom ⇑f)).toFun a
-- MonoidAlgebra.mapDomain_algebraMap
theorem mapDomain_algebraMap {F : Type*} [FunLike F G H] [MonoidHomClass F G H] (f : F) (r : k) :
    mapDomain f (algebraMap k (MonoidAlgebra A G) r) = algebraMap k (MonoidAlgebra A H) r 
Arguments: {k : Type u₁} {G : Type u₂} {H : Type u_1} [CommSemiring k] [Monoid G] [Monoid H] (A : Type u₃) [Semiring A] [Algebra k A] {F : Type u_4} [FunLike F G H] [MonoidHomClass F G H] (f : F) (r : k)
Goal: MonoidAlgebra.mapDomain (⇑f) ((algebraMap k (MonoidAlgebra A G)) r) = (algebraMap k (MonoidAlgebra A H)) r
-- MonoidAlgebra.mapDomainAlgHom_apply
@[simps!]
def mapDomainAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebra k A] {H F : Type*}
    [Monoid H] [FunLike F G H] [MonoidHomClass F G H] (f : F) :
    MonoidAlgebra A G →ₐ[k] MonoidAlgebra A H 
Arguments: {G : Type u₂} [Monoid G] (k : Type u_4) (A : Type u_5) [CommSemiring k] [Semiring A] [Algebra k A] {H : Type u_6} {F : Type u_7} [Monoid H] [FunLike F G H] [MonoidHomClass F G H] (f : F)
Goal: ∀ (a : G →₀ A), (MonoidAlgebra.mapDomainAlgHom k A f) a = Finsupp.mapDomain (⇑f) a
-- MonoidAlgebra.mapDomainAlgHom_id
@[simp]
lemma mapDomainAlgHom_id (k A) [CommSemiring k] [Semiring A] [Algebra k A] :
    mapDomainAlgHom k A (MonoidHom.id G) = AlgHom.id k (MonoidAlgebra A G) 
Arguments: {G : Type u₂} [Monoid G] (k : Type u_4) (A : Type u_5) [CommSemiring k] [Semiring A] [Algebra k A]
Goal: MonoidAlgebra.mapDomainAlgHom k A (MonoidHom.id G) = AlgHom.id k (MonoidAlgebra A G)
-- MonoidAlgebra.mapDomainAlgHom_comp
@[simp]
lemma mapDomainAlgHom_comp (k A) {G₁ G₂ G₃} [CommSemiring k] [Semiring A] [Algebra k A]
    [Monoid G₁] [Monoid G₂] [Monoid G₃] (f : G₁ →* G₂) (g : G₂ →* G₃) :
    mapDomainAlgHom k A (g.comp f) = (mapDomainAlgHom k A g).comp (mapDomainAlgHom k A f) 
Arguments: (k : Type u_4) (A : Type u_5) {G₁ : Type u_6} {G₂ : Type u_7} {G₃ : Type u_8} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G₁] [Monoid G₂] [Monoid G₃] (f : G₁ →* G₂) (g : G₂ →* G₃)
Goal: MonoidAlgebra.mapDomainAlgHom k A (g.comp f) =
  (MonoidAlgebra.mapDomainAlgHom k A g).comp (MonoidAlgebra.mapDomainAlgHom k A f)
-- MonoidAlgebra.domCongr_toAlgHom
theorem domCongr_toAlgHom (e : G ≃* H) : (domCongr k A e).toAlgHom = mapDomainAlgHom k A e 
Arguments: (k : Type u₁) {G : Type u₂} {H : Type u_1} [CommSemiring k] [Monoid G] [Monoid H] (A : Type u₃) [Semiring A] [Algebra k A] (e : G ≃* H)
Goal: ↑(MonoidAlgebra.domCongr k A e) = MonoidAlgebra.mapDomainAlgHom k A e
-- MonoidAlgebra.domCongr_apply
@[simp] theorem domCongr_apply (e : G ≃* H) (f : MonoidAlgebra A G) (h : H) :
    domCongr k A e f h = f (e.symm h) 
Arguments: (k : Type u₁) {G : Type u₂} {H : Type u_1} [CommSemiring k] [Monoid G] [Monoid H] (A : Type u₃) [Semiring A] [Algebra k A] (e : G ≃* H) (f : MonoidAlgebra A G) (h : H)
Goal: ((MonoidAlgebra.domCongr k A e) f) h = f (e.symm h)
-- MonoidAlgebra.domCongr_support
@[simp] theorem domCongr_support (e : G ≃* H) (f : MonoidAlgebra A G) :
    (domCongr k A e f).support = f.support.map e 
Arguments: (k : Type u₁) {G : Type u₂} {H : Type u_1} [CommSemiring k] [Monoid G] [Monoid H] (A : Type u₃) [Semiring A] [Algebra k A] (e : G ≃* H) (f : MonoidAlgebra A G)
Goal: ((MonoidAlgebra.domCongr k A e) f).support = Finset.map (↑e).toEmbedding f.support
-- MonoidAlgebra.domCongr_single
@[simp] theorem domCongr_single (e : G ≃* H) (g : G) (a : A) :
    domCongr k A e (single g a) = single (e g) a 
Arguments: (k : Type u₁) {G : Type u₂} {H : Type u_1} [CommSemiring k] [Monoid G] [Monoid H] (A : Type u₃) [Semiring A] [Algebra k A] (e : G ≃* H) (g : G) (a : A)
Goal: (MonoidAlgebra.domCongr k A e) (MonoidAlgebra.single g a) = MonoidAlgebra.single (e g) a
-- MonoidAlgebra.domCongr_refl
@[simp] theorem domCongr_refl : domCongr k A (MulEquiv.refl G) = AlgEquiv.refl 
Arguments: (k : Type u₁) {G : Type u₂} [CommSemiring k] [Monoid G] (A : Type u₃) [Semiring A] [Algebra k A]
Goal: MonoidAlgebra.domCongr k A (MulEquiv.refl G) = AlgEquiv.refl
-- MonoidAlgebra.domCongr_symm
@[simp] theorem domCongr_symm (e : G ≃* H) : (domCongr k A e).symm = domCongr k A e.symm 
Arguments: (k : Type u₁) {G : Type u₂} {H : Type u_1} [CommSemiring k] [Monoid G] [Monoid H] (A : Type u₃) [Semiring A] [Algebra k A] (e : G ≃* H)
Goal: (MonoidAlgebra.domCongr k A e).symm = MonoidAlgebra.domCongr k A e.symm
-- MonoidAlgebra.GroupSMul.linearMap_apply
@[simp]
theorem GroupSMul.linearMap_apply [Monoid G] [CommSemiring k] (V : Type u₃) [AddCommMonoid V]
    [Module k V] [Module (MonoidAlgebra k G) V] [IsScalarTower k (MonoidAlgebra k G) V] (g : G)
    (v : V) : (GroupSMul.linearMap k V g) v = single g (1 : k) • v 
Arguments: (k : Type u₁) {G : Type u₂} [Monoid G] [CommSemiring k] (V : Type u₃) [AddCommMonoid V] [Module k V] [Module (MonoidAlgebra k G) V] [IsScalarTower k (MonoidAlgebra k G) V] (g : G) (v : V)
Goal: (MonoidAlgebra.GroupSMul.linearMap k V g) v = MonoidAlgebra.single g 1 • v
-- MonoidAlgebra.equivariantOfLinearOfComm_apply
@[simp]
theorem equivariantOfLinearOfComm_apply (v : V) : (equivariantOfLinearOfComm f h) v = f v 
Arguments: {k : Type u₁} {G : Type u₂} [Monoid G] [CommSemiring k] {V : Type u₃} {W : Type u₄} [AddCommMonoid V] [Module k V] [Module (MonoidAlgebra k G) V] [IsScalarTower k (MonoidAlgebra k G) V] [AddCommMonoid W] [Module k W] [Module (MonoidAlgebra k G) W] [IsScalarTower k (MonoidAlgebra k G) W] (f : V →ₗ[k] W) (h : ∀ (g : G) (v : V), f (MonoidAlgebra.single g 1 • v) = MonoidAlgebra.single g 1 • f v) (v : V)
Goal: (MonoidAlgebra.equivariantOfLinearOfComm f h) v = f v
-- MonoidAlgebra.prod_single
theorem prod_single [CommSemiring k] [CommMonoid G] {s : Finset ι} {a : ι → G} {b : ι → k} :
    (∏ i ∈ s, single (a i) (b i)) = single (∏ i ∈ s, a i) (∏ i ∈ s, b i) 
Arguments: {k : Type u₁} {G : Type u₂} {ι : Type ui} [CommSemiring k] [CommMonoid G] {s : Finset ι} {a : ι → G} {b : ι → k}
Goal: ∏ i ∈ s, MonoidAlgebra.single (a i) (b i) = MonoidAlgebra.single (∏ i ∈ s, a i) (∏ i ∈ s, b i)
-- MonoidAlgebra.mul_single_apply
@[simp]
theorem mul_single_apply (f : MonoidAlgebra k G) (r : k) (x y : G) :
    (f * single x r) y = f (y * x⁻¹) * r 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Group G] (f : MonoidAlgebra k G) (r : k) (x y : G)
Goal: (f * MonoidAlgebra.single x r) y = f (y * x⁻¹) * r
-- MonoidAlgebra.single_mul_apply
@[simp]
theorem single_mul_apply (r : k) (x : G) (f : MonoidAlgebra k G) (y : G) :
    (single x r * f) y = r * f (x⁻¹ * y) 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Group G] (r : k) (x : G) (f : MonoidAlgebra k G) (y : G)
Goal: (MonoidAlgebra.single x r * f) y = r * f (x⁻¹ * y)
-- MonoidAlgebra.mul_apply_left
theorem mul_apply_left (f g : MonoidAlgebra k G) (x : G) :
    (f * g) x = f.sum fun a b => b * g (a⁻¹ * x) 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Group G] (f g : MonoidAlgebra k G) (x : G)
Goal: (f * g) x = Finsupp.sum f fun a b => b * g (a⁻¹ * x)
-- MonoidAlgebra.mul_apply_right
theorem mul_apply_right (f g : MonoidAlgebra k G) (x : G) :
    (f * g) x = g.sum fun a b => f (x * a⁻¹) * b 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Group G] (f g : MonoidAlgebra k G) (x : G)
Goal: (f * g) x = Finsupp.sum g fun a b => f (x * a⁻¹) * b
-- MonoidAlgebra.opRingEquiv_apply
@[simps! (config := { simpRhs := true }) apply symm_apply]
protected noncomputable def opRingEquiv [Monoid G] :
    (MonoidAlgebra k G)ᵐᵒᵖ ≃+* MonoidAlgebra kᵐᵒᵖ Gᵐᵒᵖ 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Monoid G]
Goal: ∀ (a : (G →₀ k)ᵐᵒᵖ),
  MonoidAlgebra.opRingEquiv a =
    Finsupp.equivMapDomain MulOpposite.opEquiv (Finsupp.mapRange MulOpposite.op ⋯ (MulOpposite.unop a))
-- MonoidAlgebra.opRingEquiv_symm_apply
@[simps! (config := { simpRhs := true }) apply symm_apply]
protected noncomputable def opRingEquiv [Monoid G] :
    (MonoidAlgebra k G)ᵐᵒᵖ ≃+* MonoidAlgebra kᵐᵒᵖ Gᵐᵒᵖ 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Monoid G]
Goal: ∀ (a : Gᵐᵒᵖ →₀ kᵐᵒᵖ),
  MonoidAlgebra.opRingEquiv.symm a =
    MulOpposite.op (Finsupp.mapRange MulOpposite.unop ⋯ (Finsupp.equivMapDomain MulOpposite.opEquiv.symm a))
-- MonoidAlgebra.opRingEquiv_single
theorem opRingEquiv_single [Monoid G] (r : k) (x : G) :
    MonoidAlgebra.opRingEquiv (op (single x r)) = single (op x) (op r) 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Monoid G] (r : k) (x : G)
Goal: MonoidAlgebra.opRingEquiv (MulOpposite.op (MonoidAlgebra.single x r)) =
  MonoidAlgebra.single (MulOpposite.op x) (MulOpposite.op r)
-- MonoidAlgebra.opRingEquiv_symm_single
theorem opRingEquiv_symm_single [Monoid G] (r : kᵐᵒᵖ) (x : Gᵐᵒᵖ) :
    MonoidAlgebra.opRingEquiv.symm (single x r) = op (single x.unop r.unop) 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Monoid G] (r : kᵐᵒᵖ) (x : Gᵐᵒᵖ)
Goal: MonoidAlgebra.opRingEquiv.symm (MonoidAlgebra.single x r) =
  MulOpposite.op (MonoidAlgebra.single (MulOpposite.unop x) (MulOpposite.unop r))
-- AddMonoidAlgebra.single_zero
theorem single_zero (a : G) : (single a 0 : k[G]) = 0 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] (a : G)
Goal: AddMonoidAlgebra.single a 0 = 0
-- AddMonoidAlgebra.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: AddMonoidAlgebra.single a (b₁ + b₂) = AddMonoidAlgebra.single a b₁ + AddMonoidAlgebra.single a b₂
-- AddMonoidAlgebra.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 (AddMonoidAlgebra.single a b) h = h a b
-- AddMonoidAlgebra.sum_single
@[simp]
theorem sum_single (f : k[G]) : f.sum single = f 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] (f : AddMonoidAlgebra k G)
Goal: Finsupp.sum f AddMonoidAlgebra.single = f
-- AddMonoidAlgebra.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: (AddMonoidAlgebra.single a b) a' = if a = a' then b else 0
-- AddMonoidAlgebra.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: AddMonoidAlgebra.single a b = 0 ↔ b = 0
-- AddMonoidAlgebra.mapDomain_sum
theorem mapDomain_sum {k' G' : Type*} [Semiring k'] {f : G → G'} {s : AddMonoidAlgebra k' G}
    {v : G → k' → 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 : AddMonoidAlgebra k' G} {v : G → k' → AddMonoidAlgebra k G}
Goal: AddMonoidAlgebra.mapDomain f (Finsupp.sum s v) = Finsupp.sum s fun a b => AddMonoidAlgebra.mapDomain f (v a b)
-- AddMonoidAlgebra.mapDomain_single
theorem mapDomain_single {G' : Type*} {f : G → G'} {a : G} {b : k} :
    mapDomain f (single a b) = single (f a) b 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] {G' : Type u_3} {f : G → G'} {a : G} {b : k}
Goal: AddMonoidAlgebra.mapDomain f (AddMonoidAlgebra.single a b) = AddMonoidAlgebra.single (f a) b
-- AddMonoidAlgebra.liftNC_single
@[simp]
theorem liftNC_single (f : k →+ R) (g : Multiplicative G → R) (a : G) (b : k) :
    liftNC f g (single a b) = f b * g (Multiplicative.ofAdd a) 
Arguments: {k : Type u₁} {G : Type u₂} {R : Type u_2} [Semiring k] [NonUnitalNonAssocSemiring R] (f : k →+ R) (g : Multiplicative G → R) (a : G) (b : k)
Goal: (AddMonoidAlgebra.liftNC f g) (AddMonoidAlgebra.single a b) = f b * g (Multiplicative.ofAdd a)
-- AddMonoidAlgebra.mul_def
theorem mul_def {f g : 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] [Add G] {f g : AddMonoidAlgebra k G}
Goal: f * g = Finsupp.sum f fun a₁ b₁ => Finsupp.sum g fun a₂ b₂ => AddMonoidAlgebra.single (a₁ + a₂) (b₁ * b₂)
-- AddMonoidAlgebra.liftNC_mul
theorem liftNC_mul {g_hom : Type*}
    [FunLike g_hom (Multiplicative G) R] [MulHomClass g_hom (Multiplicative G) R]
    (f : k →+* R) (g : g_hom) (a b : k[G])
    (h_comm : ∀ {x y}, y ∈ a.support → Commute (f (b x)) (g <| Multiplicative.ofAdd 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] [Add G] [Semiring R] {g_hom : Type u_3} [FunLike g_hom (Multiplicative G) R] [MulHomClass g_hom (Multiplicative G) R] (f : k →+* R) (g : g_hom) (a b : AddMonoidAlgebra k G) (h_comm : ∀ {x y : G}, y ∈ a.support → Commute (f (b x)) (g (Multiplicative.ofAdd y)))
Goal: (AddMonoidAlgebra.liftNC ↑f ⇑g) (a * b) = (AddMonoidAlgebra.liftNC ↑f ⇑g) a * (AddMonoidAlgebra.liftNC ↑f ⇑g) b
-- AddMonoidAlgebra.one_def
theorem one_def : (1 : k[G]) = single 0 1 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Zero G]
Goal: 1 = AddMonoidAlgebra.single 0 1
-- AddMonoidAlgebra.liftNC_one
@[simp]
theorem liftNC_one {g_hom : Type*}
    [FunLike g_hom (Multiplicative G) R] [OneHomClass g_hom (Multiplicative 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} [Semiring k] [Zero G] [NonAssocSemiring R] {g_hom : Type u_3} [FunLike g_hom (Multiplicative G) R] [OneHomClass g_hom (Multiplicative G) R] (f : k →+* R) (g : g_hom)
Goal: (AddMonoidAlgebra.liftNC ↑f ⇑g) 1 = 1
-- AddMonoidAlgebra.natCast_def
theorem natCast_def (n : ℕ) : (n : k[G]) = single (0 : G) (n : k) 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [AddZeroClass G] (n : ℕ)
Goal: ↑n = AddMonoidAlgebra.single 0 ↑n
-- AddMonoidAlgebra.intCast_def
theorem intCast_def [Ring k] [AddZeroClass G] (z : ℤ) :
    (z : k[G]) = single (0 : G) (z : k) 
Arguments: {k : Type u₁} {G : Type u₂} [Ring k] [AddZeroClass G] (z : ℤ)
Goal: ↑z = AddMonoidAlgebra.single 0 ↑z
-- AddMonoidAlgebra.mul_apply
theorem mul_apply [DecidableEq G] [Add G] (f g : 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] [Add G] (f g : AddMonoidAlgebra 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
-- AddMonoidAlgebra.mul_apply_antidiagonal
theorem mul_apply_antidiagonal [Add G] (f g : 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] [Add G] (f g : AddMonoidAlgebra 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
-- AddMonoidAlgebra.single_mul_single
theorem single_mul_single [Add 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] [Add G] {a₁ a₂ : G} {b₁ b₂ : k}
Goal: AddMonoidAlgebra.single a₁ b₁ * AddMonoidAlgebra.single a₂ b₂ = AddMonoidAlgebra.single (a₁ + a₂) (b₁ * b₂)
-- AddMonoidAlgebra.single_commute_single
theorem single_commute_single [Add G] {a₁ a₂ : G} {b₁ b₂ : k}
    (ha : AddCommute a₁ a₂) (hb : Commute b₁ b₂) :
    Commute (single a₁ b₁) (single a₂ b₂) 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Add G] {a₁ a₂ : G} {b₁ b₂ : k} (ha : AddCommute a₁ a₂) (hb : Commute b₁ b₂)
Goal: Commute (AddMonoidAlgebra.single a₁ b₁) (AddMonoidAlgebra.single a₂ b₂)
-- AddMonoidAlgebra.single_pow
theorem single_pow [AddMonoid G] {a : G} {b : k} : ∀ n : ℕ, single a b ^ n = single (n • a) (b ^ n)
  
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [AddMonoid G] {a : G} {b : k} (n : ℕ)
Goal: AddMonoidAlgebra.single a b ^ n = AddMonoidAlgebra.single (n • a) (b ^ n)
-- AddMonoidAlgebra.mapDomain_one
@[simp]
theorem mapDomain_one {α : Type*} {β : Type*} {α₂ : Type*} [Semiring β] [Zero α] [Zero α₂]
    {F : Type*} [FunLike F α α₂] [ZeroHomClass F α α₂] (f : F) :
    (mapDomain f (1 : AddMonoidAlgebra β α) : AddMonoidAlgebra β α₂) =
      (1 : AddMonoidAlgebra β α₂) 
Arguments: {α : Type u_3} {β : Type u_4} {α₂ : Type u_5} [Semiring β] [Zero α] [Zero α₂] {F : Type u_6} [FunLike F α α₂] [ZeroHomClass F α α₂] (f : F)
Goal: AddMonoidAlgebra.mapDomain (⇑f) 1 = 1
-- AddMonoidAlgebra.mapDomain_mul
theorem mapDomain_mul {α : Type*} {β : Type*} {α₂ : Type*} [Semiring β] [Add α] [Add α₂]
    {F : Type*} [FunLike F α α₂] [AddHomClass F α α₂] (f : F) (x y : AddMonoidAlgebra β α) :
    mapDomain f (x * y) = mapDomain f x * mapDomain f y 
Arguments: {α : Type u_3} {β : Type u_4} {α₂ : Type u_5} [Semiring β] [Add α] [Add α₂] {F : Type u_6} [FunLike F α α₂] [AddHomClass F α α₂] (f : F) (x y : AddMonoidAlgebra β α)
Goal: AddMonoidAlgebra.mapDomain (⇑f) (x * y) = AddMonoidAlgebra.mapDomain (⇑f) x * AddMonoidAlgebra.mapDomain (⇑f) y
-- AddMonoidAlgebra.ofMagma_apply
@[simps]
def ofMagma [Add G] : Multiplicative G →ₙ* k[G] 
Arguments: (k : Type u₁) (G : Type u₂) [Semiring k] [Add G] (a : Multiplicative G)
Goal: (AddMonoidAlgebra.ofMagma k G) a = AddMonoidAlgebra.single a 1
-- AddMonoidAlgebra.of_apply
@[simp]
theorem of_apply [AddZeroClass G] (a : Multiplicative G) :
    of k G a = single (Multiplicative.toAdd a) 1 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [AddZeroClass G] (a : Multiplicative G)
Goal: (AddMonoidAlgebra.of k G) a = AddMonoidAlgebra.single (Multiplicative.toAdd a) 1
-- AddMonoidAlgebra.of'_apply
@[simp]
theorem of'_apply (a : G) : of' k G a = single a 1 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] (a : G)
Goal: AddMonoidAlgebra.of' k G a = AddMonoidAlgebra.single a 1
-- AddMonoidAlgebra.of'_eq_of
theorem of'_eq_of [AddZeroClass G] (a : G) : of' k G a = of k G (.ofAdd a) 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [AddZeroClass G] (a : G)
Goal: AddMonoidAlgebra.of' k G a = (AddMonoidAlgebra.of k G) (Multiplicative.ofAdd a)
-- AddMonoidAlgebra.of_injective
theorem of_injective [Nontrivial k] [AddZeroClass G] : Function.Injective (of k G) 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [Nontrivial k] [AddZeroClass G]
Goal: Function.Injective ⇑(AddMonoidAlgebra.of k G)
-- AddMonoidAlgebra.of'_commute
theorem of'_commute [Semiring k] [AddZeroClass G] {a : G} (h : ∀ a', AddCommute a a')
    (f : AddMonoidAlgebra k G) :
    Commute (of' k G a) f 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [AddZeroClass G] {a : G} (h : ∀ (a' : G), AddCommute a a') (f : AddMonoidAlgebra k G)
Goal: Commute (AddMonoidAlgebra.of' k G a) f
-- AddMonoidAlgebra.singleHom_apply
@[simps]
def singleHom [AddZeroClass G] : k × Multiplicative G →* k[G] 
Arguments: {k : Type u₁} {G : Type u₂} [Semiring k] [AddZeroClass G] (a : k × Multiplicative G)
Goal: AddMonoidAlgebra.singleHom a = AddMonoidAlgebra.single (Multiplicative.toAdd a.2) a.1