algebra.monoid_algebra.basicMathlib.Algebra.MonoidAlgebra.Basic

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

feat(*): generalise+add algebraic instances (#18947)

These are needed for #18857 (splitting field diamond), and I feel as though it's getting unwieldy so having these separately for review may be nice.

Co-authored-by: Eric Rodriguez <37984851+ericrbg@users.noreply.github.com>

Diff
@@ -295,9 +295,8 @@ instance [monoid R] [semiring k] [distrib_mul_action R k] [has_faithful_smul R k
   has_faithful_smul R (monoid_algebra k G) :=
 finsupp.has_faithful_smul
 
-instance [monoid R] [monoid S] [semiring k] [distrib_mul_action R k] [distrib_mul_action S k]
-  [has_smul R S] [is_scalar_tower R S k] :
-  is_scalar_tower R S (monoid_algebra k G) :=
+instance [semiring k] [smul_zero_class R k] [smul_zero_class S k] [has_smul R S]
+  [is_scalar_tower R S k] : is_scalar_tower R S (monoid_algebra k G) :=
 finsupp.is_scalar_tower G k
 
 instance [monoid R] [monoid S] [semiring k] [distrib_mul_action R k] [distrib_mul_action S k]

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

feat(data/mv_polynomial/basic): add and generalize some lemmas from finsupp and monoid_algebra (#18855)

Most of these changes generalize from distrib_mul_action to smul_zero_class. The new lemmas are all just proved using corresponding lemmas on the underlying types.

Co-authored-by: Hagb (Junyu Guo 郭俊余) <hagb_green@qq.com>

Diff
@@ -1130,24 +1130,24 @@ instance [monoid R] [semiring k] [distrib_mul_action R k] :
   distrib_mul_action R (add_monoid_algebra k G) :=
 finsupp.distrib_mul_action G k
 
-instance [monoid R] [semiring k] [distrib_mul_action R k] [has_faithful_smul R k] [nonempty G] :
+instance [semiring k] [smul_zero_class R k] [has_faithful_smul R k] [nonempty G] :
   has_faithful_smul R (add_monoid_algebra k G) :=
 finsupp.has_faithful_smul
 
 instance [semiring R] [semiring k] [module R k] : module R (add_monoid_algebra k G) :=
 finsupp.module G k
 
-instance [monoid R] [monoid S] [semiring k] [distrib_mul_action R k] [distrib_mul_action S k]
+instance [semiring k] [smul_zero_class R k] [smul_zero_class S k]
   [has_smul R S] [is_scalar_tower R S k] :
   is_scalar_tower R S (add_monoid_algebra k G) :=
 finsupp.is_scalar_tower G k
 
-instance [monoid R] [monoid S] [semiring k] [distrib_mul_action R k] [distrib_mul_action S k]
+instance [semiring k] [smul_zero_class R k] [smul_zero_class S k]
   [smul_comm_class R S k] :
   smul_comm_class R S (add_monoid_algebra k G) :=
 finsupp.smul_comm_class G k
 
-instance [monoid R] [semiring k] [distrib_mul_action R k] [distrib_mul_action Rᵐᵒᵖ k]
+instance [semiring k] [smul_zero_class R k] [smul_zero_class Rᵐᵒᵖ k]
   [is_central_scalar R k] :
   is_central_scalar R (add_monoid_algebra k G) :=
 finsupp.is_central_scalar G k

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

feat(algebra & polynomial): some (q)smul lemmas+generalisations (#18852)

There is many generalisations around these areas too, but I am specifically not doing them as it will be easier done after the port. I am only doing what I need for merging in the splitting field diamond fix.

Co-authored-by: Eric Rodriguez <37984851+ericrbg@users.noreply.github.com>

Diff
@@ -1123,6 +1123,9 @@ instance [comm_ring k] [add_comm_monoid G] : comm_ring (add_monoid_algebra k G)
 
 variables {S : Type*}
 
+instance [semiring k] [distrib_smul R k] : distrib_smul R (add_monoid_algebra k G) :=
+finsupp.distrib_smul G k
+
 instance [monoid R] [semiring k] [distrib_mul_action R k] :
   distrib_mul_action R (add_monoid_algebra k G) :=
 finsupp.distrib_mul_action G k

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

feat(algebra/monoid_algebra): add division by a generator (#15905)

This generalizes polynomial.div_X.

Zulip thread

Diff
@@ -433,6 +433,21 @@ lemma mul_single_one_apply [mul_one_class G] (f : monoid_algebra k G) (r : k) (x
   (f * single 1 r) x = f x * r :=
 f.mul_single_apply_aux $ λ a, by rw [mul_one]
 
+lemma mul_single_apply_of_not_exists_mul [has_mul G] (r : k) {g g' : G} (x : monoid_algebra k G)
+  (h : ¬∃ d, g' = d * g):
+  (x * finsupp.single g r : monoid_algebra k G) g' = 0 :=
+begin
+  classical,
+  rw [mul_apply, finsupp.sum_comm, finsupp.sum_single_index],
+  swap,
+  { simp_rw [finsupp.sum, mul_zero, if_t_t, finset.sum_const_zero] },
+  { apply finset.sum_eq_zero,
+    simp_rw ite_eq_right_iff,
+    rintros g'' hg'' rfl,
+    exfalso,
+    exact h ⟨_, rfl⟩ }
+end
+
 lemma single_mul_apply_aux [has_mul G] (f : monoid_algebra k G) {r : k} {x y z : G}
   (H : ∀ a, x * a = y ↔ a = z) :
   (single x r * f) y = r * f z :=
@@ -448,6 +463,21 @@ lemma single_one_mul_apply [mul_one_class G] (f : monoid_algebra k G) (r : k) (x
   (single 1 r * f) x = r * f x :=
 f.single_mul_apply_aux $ λ a, by rw [one_mul]
 
+lemma single_mul_apply_of_not_exists_mul [has_mul G] (r : k) {g g' : G} (x : monoid_algebra k G)
+  (h : ¬∃ d, g' = g * d):
+  (finsupp.single g r * x : monoid_algebra k G) g' = 0 :=
+begin
+  classical,
+  rw [mul_apply, finsupp.sum_single_index],
+  swap,
+  { simp_rw [finsupp.sum, zero_mul, if_t_t, finset.sum_const_zero] },
+  { apply finset.sum_eq_zero,
+    simp_rw ite_eq_right_iff,
+    rintros g'' hg'' rfl,
+    exfalso,
+    exact h ⟨_, rfl⟩ },
+end
+
 lemma lift_nc_smul [mul_one_class G] {R : Type*} [semiring R] (f : k →+* R) (g : G →* R) (c : k)
   (φ : monoid_algebra k G) :
   lift_nc (f : k →+ R) g (c • φ) = f c * lift_nc (f : k →+ R) g φ :=
@@ -1224,6 +1254,11 @@ lemma mul_single_zero_apply [add_zero_class G] (f : add_monoid_algebra k G) (r :
   (f * single 0 r) x = f x * r :=
 f.mul_single_apply_aux r _ _ _ $ λ a, by rw [add_zero]
 
+lemma mul_single_apply_of_not_exists_add [has_add G] (r : k) {g g' : G} (x : add_monoid_algebra k G)
+  (h : ¬∃ d, g' = d + g):
+  (x * finsupp.single g r : add_monoid_algebra k G) g' = 0 :=
+@monoid_algebra.mul_single_apply_of_not_exists_mul k (multiplicative G) _ _ _ _ _ _ h
+
 lemma single_mul_apply_aux [has_add G] (f : add_monoid_algebra k G) (r : k) (x y z : G)
   (H : ∀ a, x + a = y ↔ a = z) :
   (single x r * f : add_monoid_algebra k G) y = r * f z :=
@@ -1233,6 +1268,11 @@ lemma single_zero_mul_apply [add_zero_class G] (f : add_monoid_algebra k G) (r :
   (single 0 r * f : add_monoid_algebra k G) x = r * f x :=
 f.single_mul_apply_aux r _ _ _ $ λ a, by rw [zero_add]
 
+lemma single_mul_apply_of_not_exists_add [has_add G] (r : k) {g g' : G} (x : add_monoid_algebra k G)
+  (h : ¬∃ d, g' = g + d):
+  (finsupp.single g r * x : add_monoid_algebra k G) g' = 0 :=
+@monoid_algebra.single_mul_apply_of_not_exists_mul k (multiplicative G) _ _ _ _ _ _ h
+
 lemma mul_single_apply [add_group G] (f : add_monoid_algebra k G) (r : k) (x y : G) :
   (f * single x r) y = f (y - x) * r :=
 (sub_eq_add_neg y x).symm ▸

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -381,7 +381,7 @@ theorem mul_apply_antidiagonal [Mul G] (f g : MonoidAlgebra k G) (x : G) (s : Fi
       _ = ∑ p in (f.support ×ˢ g.support).filterₓ fun p : G × G => p.1 * p.2 = x, f p.1 * g p.2 :=
         (Finset.sum_filter _ _).symm
       _ = ∑ p in s.filter fun p : G × G => p.1 ∈ f.support ∧ p.2 ∈ g.support, f p.1 * g p.2 :=
-        (sum_congr (by ext; simp only [mem_filter, mem_product, hs, and_comm']) fun _ _ => rfl)
+        (sum_congr (by ext; simp only [mem_filter, mem_product, hs, and_comm]) fun _ _ => rfl)
       _ = ∑ p in s, f p.1 * g p.2 :=
         sum_subset (filter_subset _ _) fun p hps hp =>
           by
Diff
@@ -223,10 +223,10 @@ instance : NonAssocSemiring (MonoidAlgebra k G) :=
       simp only [mul_def, one_def, sum_single_index, MulZeroClass.mul_zero, single_zero, sum_zero,
         add_zero, mul_one, sum_single] }
 
-#print MonoidAlgebra.nat_cast_def /-
-theorem nat_cast_def (n : ℕ) : (n : MonoidAlgebra k G) = single 1 n :=
+#print MonoidAlgebra.natCast_def /-
+theorem natCast_def (n : ℕ) : (n : MonoidAlgebra k G) = single 1 n :=
   rfl
-#align monoid_algebra.nat_cast_def MonoidAlgebra.nat_cast_def
+#align monoid_algebra.nat_cast_def MonoidAlgebra.natCast_def
 -/
 
 end MulOneClass
@@ -298,10 +298,10 @@ instance [Ring k] [MulOneClass G] : NonAssocRing (MonoidAlgebra k G) :=
     intCast_ofNat := fun n => by simpa
     intCast_negSucc := fun n => by simpa }
 
-#print MonoidAlgebra.int_cast_def /-
-theorem int_cast_def [Ring k] [MulOneClass G] (z : ℤ) : (z : MonoidAlgebra k G) = single 1 z :=
+#print MonoidAlgebra.intCast_def /-
+theorem intCast_def [Ring k] [MulOneClass G] (z : ℤ) : (z : MonoidAlgebra k G) = single 1 z :=
   rfl
-#align monoid_algebra.int_cast_def MonoidAlgebra.int_cast_def
+#align monoid_algebra.int_cast_def MonoidAlgebra.intCast_def
 -/
 
 instance [Ring k] [Monoid G] : Ring (MonoidAlgebra k G) :=
@@ -1316,10 +1316,10 @@ instance : NonAssocSemiring (AddMonoidAlgebra k G) :=
       simp only [mul_def, one_def, sum_single_index, MulZeroClass.mul_zero, single_zero, sum_zero,
         add_zero, mul_one, sum_single] }
 
-#print AddMonoidAlgebra.nat_cast_def /-
-theorem nat_cast_def (n : ℕ) : (n : AddMonoidAlgebra k G) = single 0 n :=
+#print AddMonoidAlgebra.natCast_def /-
+theorem natCast_def (n : ℕ) : (n : AddMonoidAlgebra k G) = single 0 n :=
   rfl
-#align add_monoid_algebra.nat_cast_def AddMonoidAlgebra.nat_cast_def
+#align add_monoid_algebra.nat_cast_def AddMonoidAlgebra.natCast_def
 -/
 
 end MulOneClass
@@ -1391,10 +1391,10 @@ instance [Ring k] [AddZeroClass G] : NonAssocRing (AddMonoidAlgebra k G) :=
     intCast_ofNat := fun n => by simpa
     intCast_negSucc := fun n => by simpa }
 
-#print AddMonoidAlgebra.int_cast_def /-
-theorem int_cast_def [Ring k] [AddZeroClass G] (z : ℤ) : (z : AddMonoidAlgebra k G) = single 0 z :=
+#print AddMonoidAlgebra.intCast_def /-
+theorem intCast_def [Ring k] [AddZeroClass G] (z : ℤ) : (z : AddMonoidAlgebra k G) = single 0 z :=
   rfl
-#align add_monoid_algebra.int_cast_def AddMonoidAlgebra.int_cast_def
+#align add_monoid_algebra.int_cast_def AddMonoidAlgebra.intCast_def
 -/
 
 instance [Ring k] [AddMonoid G] : Ring (AddMonoidAlgebra k G) :=
Diff
@@ -5,7 +5,7 @@ Authors: Johannes Hölzl, Yury G. Kudryashov, Scott Morrison
 -/
 import Algebra.Algebra.Equiv
 import Algebra.BigOperators.Finsupp
-import Algebra.Hom.NonUnitalAlg
+import Algebra.Algebra.NonUnitalHom
 import Algebra.Module.BigOperators
 import LinearAlgebra.Finsupp
 
@@ -406,7 +406,7 @@ theorem single_mul_single [Mul G] {a₁ a₂ : G} {b₁ b₂ : k} :
 theorem single_pow [Monoid G] {a : G} {b : k} :
     ∀ n : ℕ, (single a b : MonoidAlgebra k G) ^ n = single (a ^ n) (b ^ n)
   | 0 => by simp only [pow_zero]; rfl
-  | n + 1 => by simp only [pow_succ, single_pow n, single_mul_single]
+  | n + 1 => by simp only [pow_succ', single_pow n, single_mul_single]
 #align monoid_algebra.single_pow MonoidAlgebra.single_pow
 -/
 
@@ -1473,7 +1473,7 @@ theorem single_pow [AddMonoid G] {a : G} {b : k} :
     ∀ n : ℕ, (single a b ^ n : AddMonoidAlgebra k G) = single (n • a) (b ^ n)
   | 0 => by simp only [pow_zero, zero_nsmul]; rfl
   | n + 1 => by
-    rw [pow_succ, pow_succ, single_pow n, single_mul_single, add_comm, add_nsmul, one_nsmul]
+    rw [pow_succ', pow_succ', single_pow n, single_mul_single, add_comm, add_nsmul, one_nsmul]
 #align add_monoid_algebra.single_pow AddMonoidAlgebra.single_pow
 -/
 
Diff
@@ -505,7 +505,7 @@ theorem mul_single_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
       (f * single x r) z = Sum f fun a b => if a = y then b * r else 0 := by
         simp only [mul_apply, A, H]
       _ = if y ∈ f.support then f y * r else 0 := (f.support.sum_ite_eq' _ _)
-      _ = f y * r := by split_ifs with h <;> simp at h  <;> simp [h]
+      _ = f y * r := by split_ifs with h <;> simp at h <;> simp [h]
 #align monoid_algebra.mul_single_apply_aux MonoidAlgebra.mul_single_apply_aux
 -/
 
@@ -541,7 +541,7 @@ theorem single_mul_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
         (mul_apply _ _ _).trans <| sum_single_index this
       _ = f.sum fun a b => ite (a = z) (r * b) 0 := by simp only [H]
       _ = if z ∈ f.support then r * f z else 0 := (f.support.sum_ite_eq' _ _)
-      _ = _ := by split_ifs with h <;> simp at h  <;> simp [h]
+      _ = _ := by split_ifs with h <;> simp at h <;> simp [h]
 #align monoid_algebra.single_mul_apply_aux MonoidAlgebra.single_mul_apply_aux
 -/
 
Diff
@@ -79,7 +79,7 @@ deriving Inhabited, AddCommMonoid
 -/
 
 instance : CoeFun (MonoidAlgebra k G) fun _ => G → k :=
-  Finsupp.coeFun
+  Finsupp.instCoeFun
 
 end
 
@@ -131,7 +131,7 @@ theorem mul_def {f g : MonoidAlgebra k G} :
 -/
 
 instance : NonUnitalNonAssocSemiring (MonoidAlgebra k G) :=
-  { Finsupp.addCommMonoid with
+  { Finsupp.instAddCommMonoid with
     zero := 0
     mul := (· * ·)
     add := (· + ·)
@@ -269,7 +269,7 @@ instance [CommSemiring k] [CommSemigroup G] : NonUnitalCommSemiring (MonoidAlgeb
       simp only [mul_comm] }
 
 instance [Semiring k] [Nontrivial k] [Nonempty G] : Nontrivial (MonoidAlgebra k G) :=
-  Finsupp.nontrivial
+  Finsupp.instNontrivial
 
 /-! #### Derived instances -/
 
@@ -283,7 +283,7 @@ instance [Semiring k] [Subsingleton k] : Unique (MonoidAlgebra k G) :=
   Finsupp.uniqueOfRight
 
 instance [Ring k] : AddCommGroup (MonoidAlgebra k G) :=
-  Finsupp.addCommGroup
+  Finsupp.instAddCommGroup
 
 instance [Ring k] [Mul G] : NonUnitalNonAssocRing (MonoidAlgebra k G) :=
   { MonoidAlgebra.addCommGroup, MonoidAlgebra.nonUnitalNonAssocSemiring with }
@@ -1167,7 +1167,7 @@ deriving Inhabited, AddCommMonoid
 -/
 
 instance : CoeFun (AddMonoidAlgebra k G) fun _ => G → k :=
-  Finsupp.coeFun
+  Finsupp.instCoeFun
 
 end
 
@@ -1220,7 +1220,7 @@ theorem mul_def {f g : AddMonoidAlgebra k G} :
 -/
 
 instance : NonUnitalNonAssocSemiring (AddMonoidAlgebra k G) :=
-  { Finsupp.addCommMonoid with
+  { Finsupp.instAddCommMonoid with
     zero := 0
     mul := (· * ·)
     add := (· + ·)
@@ -1362,7 +1362,7 @@ instance [CommSemiring k] [AddCommSemigroup G] : NonUnitalCommSemiring (AddMonoi
     mul_comm := @mul_comm (MonoidAlgebra k <| Multiplicative G) _ }
 
 instance [Semiring k] [Nontrivial k] [Nonempty G] : Nontrivial (AddMonoidAlgebra k G) :=
-  Finsupp.nontrivial
+  Finsupp.instNontrivial
 
 /-! #### Derived instances -/
 
@@ -1376,7 +1376,7 @@ instance [Semiring k] [Subsingleton k] : Unique (AddMonoidAlgebra k G) :=
   Finsupp.uniqueOfRight
 
 instance [Ring k] : AddCommGroup (AddMonoidAlgebra k G) :=
-  Finsupp.addCommGroup
+  Finsupp.instAddCommGroup
 
 instance [Ring k] [Add G] : NonUnitalNonAssocRing (AddMonoidAlgebra k G) :=
   { AddMonoidAlgebra.addCommGroup, AddMonoidAlgebra.nonUnitalNonAssocSemiring with }
Diff
@@ -373,7 +373,22 @@ theorem mul_apply [DecidableEq G] [Mul G] (f g : MonoidAlgebra k G) (x : G) :
 #print 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 in s, f p.1 * g p.2 := by
-  classical
+  classical exact
+    let F : G × G → k := fun p => if p.1 * p.2 = x then f p.1 * g p.2 else 0
+    calc
+      (f * g) x = ∑ a₁ in f.support, ∑ a₂ in g.support, F (a₁, a₂) := mul_apply f g x
+      _ = ∑ p in f.support ×ˢ g.support, F p := finset.sum_product.symm
+      _ = ∑ p in (f.support ×ˢ g.support).filterₓ fun p : G × G => p.1 * p.2 = x, f p.1 * g p.2 :=
+        (Finset.sum_filter _ _).symm
+      _ = ∑ p in s.filter fun p : G × G => p.1 ∈ f.support ∧ p.2 ∈ g.support, f p.1 * g p.2 :=
+        (sum_congr (by ext; simp only [mem_filter, mem_product, hs, and_comm']) fun _ _ => rfl)
+      _ = ∑ p in s, f p.1 * g p.2 :=
+        sum_subset (filter_subset _ _) fun p hps hp =>
+          by
+          simp only [mem_filter, mem_support_iff, not_and, Classical.not_not] at hp ⊢
+          by_cases h1 : f p.1 = 0
+          · rw [h1, MulZeroClass.zero_mul]
+          · rw [hp hps h1, MulZeroClass.mul_zero]
 #align monoid_algebra.mul_apply_antidiagonal MonoidAlgebra.mul_apply_antidiagonal
 -/
 
@@ -479,7 +494,18 @@ def singleHom [MulOneClass G] : k × G →* MonoidAlgebra k G
 
 #print 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 := by classical
+    (H : ∀ a, a * x = z ↔ a = y) : (f * single x r) z = f y * r := by
+  classical exact
+    have A :
+      ∀ a₁ b₁,
+        ((single x r).Sum fun a₂ b₂ => ite (a₁ * a₂ = z) (b₁ * b₂) 0) =
+          ite (a₁ * x = z) (b₁ * r) 0 :=
+      fun a₁ b₁ => sum_single_index <| by simp
+    calc
+      (f * single x r) z = Sum f fun a b => if a = y then b * r else 0 := by
+        simp only [mul_apply, A, H]
+      _ = if y ∈ f.support then f y * r else 0 := (f.support.sum_ite_eq' _ _)
+      _ = f y * r := by split_ifs with h <;> simp at h  <;> simp [h]
 #align monoid_algebra.mul_single_apply_aux MonoidAlgebra.mul_single_apply_aux
 -/
 
@@ -492,13 +518,30 @@ theorem mul_single_one_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x
 
 #print 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 * Finsupp.single g r : MonoidAlgebra k G) g' = 0 := by classical
+    (h : ¬∃ d, g' = d * g) : (x * Finsupp.single g r : MonoidAlgebra k G) g' = 0 := by
+  classical
+  rw [mul_apply, Finsupp.sum_comm, Finsupp.sum_single_index]
+  swap
+  · simp_rw [Finsupp.sum, MulZeroClass.mul_zero, if_t_t, Finset.sum_const_zero]
+  · apply Finset.sum_eq_zero
+    simp_rw [ite_eq_right_iff]
+    rintro g'' hg'' rfl
+    exfalso
+    exact h ⟨_, rfl⟩
 #align monoid_algebra.mul_single_apply_of_not_exists_mul MonoidAlgebra.mul_single_apply_of_not_exists_mul
 -/
 
 #print 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 := by classical
+    (H : ∀ a, x * a = y ↔ a = z) : (single x r * f) y = r * f z := by
+  classical exact
+    have : (f.sum fun a b => ite (x * a = y) (0 * b) 0) = 0 := by simp
+    calc
+      (single x r * f) y = Sum f fun a b => ite (x * a = y) (r * b) 0 :=
+        (mul_apply _ _ _).trans <| sum_single_index this
+      _ = f.sum fun a b => ite (a = z) (r * b) 0 := by simp only [H]
+      _ = if z ∈ f.support then r * f z else 0 := (f.support.sum_ite_eq' _ _)
+      _ = _ := by split_ifs with h <;> simp at h  <;> simp [h]
 #align monoid_algebra.single_mul_apply_aux MonoidAlgebra.single_mul_apply_aux
 -/
 
@@ -511,7 +554,16 @@ theorem single_one_mul_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x
 
 #print 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) : (Finsupp.single g r * x : MonoidAlgebra k G) g' = 0 := by classical
+    (h : ¬∃ d, g' = g * d) : (Finsupp.single g r * x : MonoidAlgebra k G) g' = 0 := by
+  classical
+  rw [mul_apply, Finsupp.sum_single_index]
+  swap
+  · simp_rw [Finsupp.sum, MulZeroClass.zero_mul, if_t_t, Finset.sum_const_zero]
+  · apply Finset.sum_eq_zero
+    simp_rw [ite_eq_right_iff]
+    rintro g'' hg'' rfl
+    exfalso
+    exact h ⟨_, rfl⟩
 #align monoid_algebra.single_mul_apply_of_not_exists_mul MonoidAlgebra.single_mul_apply_of_not_exists_mul
 -/
 
@@ -541,7 +593,9 @@ instance isScalarTower_self [IsScalarTower R k k] :
     IsScalarTower R (MonoidAlgebra k G) (MonoidAlgebra k G) :=
   ⟨fun t a b => by
     ext m
-    classical⟩
+    classical simp only [mul_apply, Finsupp.smul_sum, smul_ite, smul_mul_assoc, sum_smul_index',
+      MulZeroClass.zero_mul, if_t_t, imp_true_iff, eq_self_iff_true, sum_zero, coe_smul,
+      smul_eq_mul, Pi.smul_apply, smul_zero]⟩
 #align monoid_algebra.is_scalar_tower_self MonoidAlgebra.isScalarTower_self
 -/
 
@@ -551,7 +605,12 @@ instance isScalarTower_self [IsScalarTower R k k] :
 also commute with the algebra multiplication. -/
 instance smulCommClass_self [SMulCommClass R k k] :
     SMulCommClass R (MonoidAlgebra k G) (MonoidAlgebra k G) :=
-  ⟨fun t a b => by classical⟩
+  ⟨fun t a b => by
+    classical
+    ext m
+    simp only [mul_apply, Finsupp.sum, Finset.smul_sum, smul_ite, mul_smul_comm, sum_smul_index',
+      imp_true_iff, eq_self_iff_true, coe_smul, ite_eq_right_iff, smul_eq_mul, Pi.smul_apply,
+      MulZeroClass.mul_zero, smul_zero]⟩
 #align monoid_algebra.smul_comm_class_self MonoidAlgebra.smulCommClass_self
 -/
 
Diff
@@ -373,22 +373,7 @@ theorem mul_apply [DecidableEq G] [Mul G] (f g : MonoidAlgebra k G) (x : G) :
 #print 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 in s, f p.1 * g p.2 := by
-  classical exact
-    let F : G × G → k := fun p => if p.1 * p.2 = x then f p.1 * g p.2 else 0
-    calc
-      (f * g) x = ∑ a₁ in f.support, ∑ a₂ in g.support, F (a₁, a₂) := mul_apply f g x
-      _ = ∑ p in f.support ×ˢ g.support, F p := finset.sum_product.symm
-      _ = ∑ p in (f.support ×ˢ g.support).filterₓ fun p : G × G => p.1 * p.2 = x, f p.1 * g p.2 :=
-        (Finset.sum_filter _ _).symm
-      _ = ∑ p in s.filter fun p : G × G => p.1 ∈ f.support ∧ p.2 ∈ g.support, f p.1 * g p.2 :=
-        (sum_congr (by ext; simp only [mem_filter, mem_product, hs, and_comm']) fun _ _ => rfl)
-      _ = ∑ p in s, f p.1 * g p.2 :=
-        sum_subset (filter_subset _ _) fun p hps hp =>
-          by
-          simp only [mem_filter, mem_support_iff, not_and, Classical.not_not] at hp ⊢
-          by_cases h1 : f p.1 = 0
-          · rw [h1, MulZeroClass.zero_mul]
-          · rw [hp hps h1, MulZeroClass.mul_zero]
+  classical
 #align monoid_algebra.mul_apply_antidiagonal MonoidAlgebra.mul_apply_antidiagonal
 -/
 
@@ -494,18 +479,7 @@ def singleHom [MulOneClass G] : k × G →* MonoidAlgebra k G
 
 #print 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 := by
-  classical exact
-    have A :
-      ∀ a₁ b₁,
-        ((single x r).Sum fun a₂ b₂ => ite (a₁ * a₂ = z) (b₁ * b₂) 0) =
-          ite (a₁ * x = z) (b₁ * r) 0 :=
-      fun a₁ b₁ => sum_single_index <| by simp
-    calc
-      (f * single x r) z = Sum f fun a b => if a = y then b * r else 0 := by
-        simp only [mul_apply, A, H]
-      _ = if y ∈ f.support then f y * r else 0 := (f.support.sum_ite_eq' _ _)
-      _ = f y * r := by split_ifs with h <;> simp at h  <;> simp [h]
+    (H : ∀ a, a * x = z ↔ a = y) : (f * single x r) z = f y * r := by classical
 #align monoid_algebra.mul_single_apply_aux MonoidAlgebra.mul_single_apply_aux
 -/
 
@@ -518,30 +492,13 @@ theorem mul_single_one_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x
 
 #print 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 * Finsupp.single g r : MonoidAlgebra k G) g' = 0 := by
-  classical
-  rw [mul_apply, Finsupp.sum_comm, Finsupp.sum_single_index]
-  swap
-  · simp_rw [Finsupp.sum, MulZeroClass.mul_zero, if_t_t, Finset.sum_const_zero]
-  · apply Finset.sum_eq_zero
-    simp_rw [ite_eq_right_iff]
-    rintro g'' hg'' rfl
-    exfalso
-    exact h ⟨_, rfl⟩
+    (h : ¬∃ d, g' = d * g) : (x * Finsupp.single g r : MonoidAlgebra k G) g' = 0 := by classical
 #align monoid_algebra.mul_single_apply_of_not_exists_mul MonoidAlgebra.mul_single_apply_of_not_exists_mul
 -/
 
 #print 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 := by
-  classical exact
-    have : (f.sum fun a b => ite (x * a = y) (0 * b) 0) = 0 := by simp
-    calc
-      (single x r * f) y = Sum f fun a b => ite (x * a = y) (r * b) 0 :=
-        (mul_apply _ _ _).trans <| sum_single_index this
-      _ = f.sum fun a b => ite (a = z) (r * b) 0 := by simp only [H]
-      _ = if z ∈ f.support then r * f z else 0 := (f.support.sum_ite_eq' _ _)
-      _ = _ := by split_ifs with h <;> simp at h  <;> simp [h]
+    (H : ∀ a, x * a = y ↔ a = z) : (single x r * f) y = r * f z := by classical
 #align monoid_algebra.single_mul_apply_aux MonoidAlgebra.single_mul_apply_aux
 -/
 
@@ -554,16 +511,7 @@ theorem single_one_mul_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x
 
 #print 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) : (Finsupp.single g r * x : MonoidAlgebra k G) g' = 0 := by
-  classical
-  rw [mul_apply, Finsupp.sum_single_index]
-  swap
-  · simp_rw [Finsupp.sum, MulZeroClass.zero_mul, if_t_t, Finset.sum_const_zero]
-  · apply Finset.sum_eq_zero
-    simp_rw [ite_eq_right_iff]
-    rintro g'' hg'' rfl
-    exfalso
-    exact h ⟨_, rfl⟩
+    (h : ¬∃ d, g' = g * d) : (Finsupp.single g r * x : MonoidAlgebra k G) g' = 0 := by classical
 #align monoid_algebra.single_mul_apply_of_not_exists_mul MonoidAlgebra.single_mul_apply_of_not_exists_mul
 -/
 
@@ -593,9 +541,7 @@ instance isScalarTower_self [IsScalarTower R k k] :
     IsScalarTower R (MonoidAlgebra k G) (MonoidAlgebra k G) :=
   ⟨fun t a b => by
     ext m
-    classical simp only [mul_apply, Finsupp.smul_sum, smul_ite, smul_mul_assoc, sum_smul_index',
-      MulZeroClass.zero_mul, if_t_t, imp_true_iff, eq_self_iff_true, sum_zero, coe_smul,
-      smul_eq_mul, Pi.smul_apply, smul_zero]⟩
+    classical⟩
 #align monoid_algebra.is_scalar_tower_self MonoidAlgebra.isScalarTower_self
 -/
 
@@ -605,12 +551,7 @@ instance isScalarTower_self [IsScalarTower R k k] :
 also commute with the algebra multiplication. -/
 instance smulCommClass_self [SMulCommClass R k k] :
     SMulCommClass R (MonoidAlgebra k G) (MonoidAlgebra k G) :=
-  ⟨fun t a b => by
-    classical
-    ext m
-    simp only [mul_apply, Finsupp.sum, Finset.smul_sum, smul_ite, mul_smul_comm, sum_smul_index',
-      imp_true_iff, eq_self_iff_true, coe_smul, ite_eq_right_iff, smul_eq_mul, Pi.smul_apply,
-      MulZeroClass.mul_zero, smul_zero]⟩
+  ⟨fun t a b => by classical⟩
 #align monoid_algebra.smul_comm_class_self MonoidAlgebra.smulCommClass_self
 -/
 
Diff
@@ -958,24 +958,24 @@ attribute [local reducible] MonoidAlgebra
 
 variable (k)
 
-#print MonoidAlgebra.GroupSmul.linearMap /-
+#print MonoidAlgebra.GroupSMul.linearMap /-
 /-- When `V` is a `k[G]`-module, multiplication by a group element `g` is a `k`-linear map. -/
-def GroupSmul.linearMap [Monoid G] [CommSemiring k] (V : Type u₃) [AddCommMonoid V] [Module k V]
+def GroupSMul.linearMap [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 →ₗ[k] V
     where
   toFun v := (single g (1 : k) • v : V)
   map_add' x y := smul_add (single g (1 : k)) x y
   map_smul' c x := smul_algebra_smul_comm _ _ _
-#align monoid_algebra.group_smul.linear_map MonoidAlgebra.GroupSmul.linearMap
+#align monoid_algebra.group_smul.linear_map MonoidAlgebra.GroupSMul.linearMap
 -/
 
-#print MonoidAlgebra.GroupSmul.linearMap_apply /-
+#print MonoidAlgebra.GroupSMul.linearMap_apply /-
 @[simp]
-theorem GroupSmul.linearMap_apply [Monoid G] [CommSemiring k] (V : Type u₃) [AddCommMonoid V]
+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 : V) :=
+    (v : V) : (GroupSMul.linearMap k V g) v = (single g (1 : k) • v : V) :=
   rfl
-#align monoid_algebra.group_smul.linear_map_apply MonoidAlgebra.GroupSmul.linearMap_apply
+#align monoid_algebra.group_smul.linear_map_apply MonoidAlgebra.GroupSMul.linearMap_apply
 -/
 
 section
@@ -1128,10 +1128,10 @@ variable {V : Type _} [AddCommMonoid V]
 
 variable [Module k V] [Module (MonoidAlgebra k G) V] [IsScalarTower k (MonoidAlgebra k G) V]
 
-#print MonoidAlgebra.submoduleOfSmulMem /-
+#print MonoidAlgebra.submoduleOfSMulMem /-
 /-- A submodule over `k` which is stable under scalar multiplication by elements of `G` is a
 submodule over `monoid_algebra k G`  -/
-def submoduleOfSmulMem (W : Submodule k V) (h : ∀ (g : G) (v : V), v ∈ W → of k G g • v ∈ W) :
+def submoduleOfSMulMem (W : Submodule k V) (h : ∀ (g : G) (v : V), v ∈ W → of k G g • v ∈ W) :
     Submodule (MonoidAlgebra k G) V where
   carrier := W
   zero_mem' := W.zero_mem'
@@ -1141,7 +1141,7 @@ def submoduleOfSmulMem (W : Submodule k V) (h : ∀ (g : G) (v : V), v ∈ W →
     rw [← Finsupp.sum_single f, Finsupp.sum, Finset.sum_smul]
     simp_rw [← smul_of, smul_assoc]
     exact Submodule.sum_smul_mem W _ fun g _ => h g v hv
-#align monoid_algebra.submodule_of_smul_mem MonoidAlgebra.submoduleOfSmulMem
+#align monoid_algebra.submodule_of_smul_mem MonoidAlgebra.submoduleOfSMulMem
 -/
 
 end Submodule
Diff
@@ -3,11 +3,11 @@ Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Yury G. Kudryashov, Scott Morrison
 -/
-import Mathbin.Algebra.Algebra.Equiv
-import Mathbin.Algebra.BigOperators.Finsupp
-import Mathbin.Algebra.Hom.NonUnitalAlg
-import Mathbin.Algebra.Module.BigOperators
-import Mathbin.LinearAlgebra.Finsupp
+import Algebra.Algebra.Equiv
+import Algebra.BigOperators.Finsupp
+import Algebra.Hom.NonUnitalAlg
+import Algebra.Module.BigOperators
+import LinearAlgebra.Finsupp
 
 #align_import algebra.monoid_algebra.basic from "leanprover-community/mathlib"@"949dc57e616a621462062668c9f39e4e17b64b69"
 
Diff
@@ -1097,7 +1097,7 @@ protected noncomputable def opRingEquiv [Monoid G] :
     opAddEquiv.symm.trans <|
       (Finsupp.mapRange.addEquiv (opAddEquiv : k ≃+ kᵐᵒᵖ)).trans <| Finsupp.domCongr opEquiv with
     map_mul' := by
-      dsimp only [AddEquiv.toFun_eq_coe, ← AddEquiv.coe_toAddMonoidHom]
+      dsimp only [AddEquiv.to_fun_eq_coe, ← AddEquiv.coe_toAddMonoidHom]
       rw [AddMonoidHom.map_mul_iff]
       ext i₁ r₁ i₂ r₂ : 6
       simp }
@@ -1851,7 +1851,7 @@ protected noncomputable def opRingEquiv [AddCommMonoid G] :
     MulOpposite.opAddEquiv.symm.trans
       (Finsupp.mapRange.addEquiv (MulOpposite.opAddEquiv : k ≃+ kᵐᵒᵖ)) with
     map_mul' := by
-      dsimp only [AddEquiv.toFun_eq_coe, ← AddEquiv.coe_toAddMonoidHom]
+      dsimp only [AddEquiv.to_fun_eq_coe, ← AddEquiv.coe_toAddMonoidHom]
       rw [AddMonoidHom.map_mul_iff]
       ext i r i' r' : 6
       dsimp
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Yury G. Kudryashov, Scott Morrison
-
-! This file was ported from Lean 3 source module algebra.monoid_algebra.basic
-! leanprover-community/mathlib commit 949dc57e616a621462062668c9f39e4e17b64b69
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.Algebra.Equiv
 import Mathbin.Algebra.BigOperators.Finsupp
@@ -14,6 +9,8 @@ import Mathbin.Algebra.Hom.NonUnitalAlg
 import Mathbin.Algebra.Module.BigOperators
 import Mathbin.LinearAlgebra.Finsupp
 
+#align_import algebra.monoid_algebra.basic from "leanprover-community/mathlib"@"949dc57e616a621462062668c9f39e4e17b64b69"
+
 /-!
 # Monoid algebras
 
Diff
@@ -602,11 +602,11 @@ instance isScalarTower_self [IsScalarTower R k k] :
 #align monoid_algebra.is_scalar_tower_self MonoidAlgebra.isScalarTower_self
 -/
 
-#print MonoidAlgebra.sMulCommClass_self /-
+#print MonoidAlgebra.smulCommClass_self /-
 /-- Note that if `k` is a `comm_semiring` then we have `smul_comm_class k k k` and so we can take
 `R = k` in the below. In other words, if the coefficients are commutative amongst themselves, they
 also commute with the algebra multiplication. -/
-instance sMulCommClass_self [SMulCommClass R k k] :
+instance smulCommClass_self [SMulCommClass R k k] :
     SMulCommClass R (MonoidAlgebra k G) (MonoidAlgebra k G) :=
   ⟨fun t a b => by
     classical
@@ -614,14 +614,14 @@ instance sMulCommClass_self [SMulCommClass R k k] :
     simp only [mul_apply, Finsupp.sum, Finset.smul_sum, smul_ite, mul_smul_comm, sum_smul_index',
       imp_true_iff, eq_self_iff_true, coe_smul, ite_eq_right_iff, smul_eq_mul, Pi.smul_apply,
       MulZeroClass.mul_zero, smul_zero]⟩
-#align monoid_algebra.smul_comm_class_self MonoidAlgebra.sMulCommClass_self
+#align monoid_algebra.smul_comm_class_self MonoidAlgebra.smulCommClass_self
 -/
 
-#print MonoidAlgebra.sMulCommClass_symm_self /-
-instance sMulCommClass_symm_self [SMulCommClass k R k] :
+#print MonoidAlgebra.smulCommClass_symm_self /-
+instance smulCommClass_symm_self [SMulCommClass k R k] :
     SMulCommClass (MonoidAlgebra k G) R (MonoidAlgebra k G) :=
   ⟨fun t a b => by haveI := SMulCommClass.symm k R k; rw [← smul_comm]⟩
-#align monoid_algebra.smul_comm_class_symm_self MonoidAlgebra.sMulCommClass_symm_self
+#align monoid_algebra.smul_comm_class_symm_self MonoidAlgebra.smulCommClass_symm_self
 -/
 
 variable {A : Type u₃} [NonUnitalNonAssocSemiring A]
@@ -1737,21 +1737,21 @@ instance isScalarTower_self [IsScalarTower R k k] :
 #align add_monoid_algebra.is_scalar_tower_self AddMonoidAlgebra.isScalarTower_self
 -/
 
-#print AddMonoidAlgebra.sMulCommClass_self /-
+#print AddMonoidAlgebra.smulCommClass_self /-
 /-- Note that if `k` is a `comm_semiring` then we have `smul_comm_class k k k` and so we can take
 `R = k` in the below. In other words, if the coefficients are commutative amongst themselves, they
 also commute with the algebra multiplication. -/
-instance sMulCommClass_self [SMulCommClass R k k] :
+instance smulCommClass_self [SMulCommClass R k k] :
     SMulCommClass R (AddMonoidAlgebra k G) (AddMonoidAlgebra k G) :=
-  @MonoidAlgebra.sMulCommClass_self k (Multiplicative G) R _ _ _ _
-#align add_monoid_algebra.smul_comm_class_self AddMonoidAlgebra.sMulCommClass_self
+  @MonoidAlgebra.smulCommClass_self k (Multiplicative G) R _ _ _ _
+#align add_monoid_algebra.smul_comm_class_self AddMonoidAlgebra.smulCommClass_self
 -/
 
-#print AddMonoidAlgebra.sMulCommClass_symm_self /-
-instance sMulCommClass_symm_self [SMulCommClass k R k] :
+#print AddMonoidAlgebra.smulCommClass_symm_self /-
+instance smulCommClass_symm_self [SMulCommClass k R k] :
     SMulCommClass (AddMonoidAlgebra k G) R (AddMonoidAlgebra k G) :=
-  @MonoidAlgebra.sMulCommClass_symm_self k (Multiplicative G) R _ _ _ _
-#align add_monoid_algebra.smul_comm_class_symm_self AddMonoidAlgebra.sMulCommClass_symm_self
+  @MonoidAlgebra.smulCommClass_symm_self k (Multiplicative G) R _ _ _ _
+#align add_monoid_algebra.smul_comm_class_symm_self AddMonoidAlgebra.smulCommClass_symm_self
 -/
 
 variable {A : Type u₃} [NonUnitalNonAssocSemiring A]
Diff
@@ -435,7 +435,7 @@ theorem mapDomain_mul {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β]
   simp_rw [mul_def, map_domain_sum, map_domain_single, map_mul]
   rw [Finsupp.sum_mapDomain_index]
   · congr
-    ext (a b)
+    ext a b
     rw [Finsupp.sum_mapDomain_index]
     · simp
     · simp [mul_add]
@@ -578,7 +578,7 @@ theorem liftNC_smul [MulOneClass G] {R : Type _} [Semiring R] (f : k →+* R) (g
     (lift_nc (↑f) g).comp (smulAddHom k (MonoidAlgebra k G) c) =
       (AddMonoidHom.mulLeft (f c)).comp (lift_nc (↑f) g)
   exact AddMonoidHom.congr_fun this φ
-  ext (a b); simp [mul_assoc]
+  ext a b; simp [mul_assoc]
 #align monoid_algebra.lift_nc_smul MonoidAlgebra.liftNC_smul
 -/
 
@@ -1102,7 +1102,7 @@ protected noncomputable def opRingEquiv [Monoid G] :
     map_mul' := by
       dsimp only [AddEquiv.toFun_eq_coe, ← AddEquiv.coe_toAddMonoidHom]
       rw [AddMonoidHom.map_mul_iff]
-      ext (i₁ r₁ i₂ r₂) : 6
+      ext i₁ r₁ i₂ r₂ : 6
       simp }
 #align monoid_algebra.op_ring_equiv MonoidAlgebra.opRingEquiv
 -/
@@ -1501,7 +1501,7 @@ theorem mapDomain_mul {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β]
   simp_rw [mul_def, map_domain_sum, map_domain_single, map_add]
   rw [Finsupp.sum_mapDomain_index]
   · congr
-    ext (a b)
+    ext a b
     rw [Finsupp.sum_mapDomain_index]
     · simp
     · simp [mul_add]
@@ -1856,7 +1856,7 @@ protected noncomputable def opRingEquiv [AddCommMonoid G] :
     map_mul' := by
       dsimp only [AddEquiv.toFun_eq_coe, ← AddEquiv.coe_toAddMonoidHom]
       rw [AddMonoidHom.map_mul_iff]
-      ext (i r i' r') : 6
+      ext i r i' r' : 6
       dsimp
       simp only [map_range_single, single_mul_single, ← op_mul, add_comm] }
 #align add_monoid_algebra.op_ring_equiv AddMonoidAlgebra.opRingEquiv
Diff
@@ -94,6 +94,7 @@ section
 
 variable [Semiring k] [NonUnitalNonAssocSemiring R]
 
+#print MonoidAlgebra.liftNC /-
 /-- A non-commutative version of `monoid_algebra.lift`: given a additive homomorphism `f : k →+ R`
 and a homomorphism `g : G → R`, returns the additive homomorphism from
 `monoid_algebra k G` such that `lift_nc f g (single a b) = f b * g a`. If `f` is a ring homomorphism
@@ -103,12 +104,15 @@ and the range of either `f` or `g` is in center of `R`, then the result is a rin
 def liftNC (f : k →+ R) (g : G → R) : MonoidAlgebra k G →+ R :=
   liftAddHom fun x : G => (AddMonoidHom.mulRight (g x)).comp f
 #align monoid_algebra.lift_nc MonoidAlgebra.liftNC
+-/
 
+#print 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 :=
   liftAddHom_apply_single _ _ _
 #align monoid_algebra.lift_nc_single MonoidAlgebra.liftNC_single
+-/
 
 end
 
@@ -122,10 +126,12 @@ variable [Semiring k] [Mul G]
 instance : Mul (MonoidAlgebra k G) :=
   ⟨fun f g => f.Sum fun a₁ b₁ => g.Sum fun a₂ b₂ => single (a₁ * a₂) (b₁ * b₂)⟩
 
+#print 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₂) :=
   rfl
 #align monoid_algebra.mul_def MonoidAlgebra.mul_def
+-/
 
 instance : NonUnitalNonAssocSemiring (MonoidAlgebra k G) :=
   { Finsupp.addCommMonoid with
@@ -145,6 +151,7 @@ instance : NonUnitalNonAssocSemiring (MonoidAlgebra k G) :=
 
 variable [Semiring R]
 
+#print MonoidAlgebra.liftNC_mul /-
 theorem liftNC_mul {g_hom : Type _} [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 :=
@@ -154,6 +161,7 @@ theorem liftNC_mul {g_hom : Type _} [MulHomClass g_hom G R] (f : k →+* R) (g :
   refine' Finset.sum_congr rfl fun y hy => Finset.sum_congr rfl fun x hx => _
   simp [mul_assoc, (h_comm hy).and_left_comm]
 #align monoid_algebra.lift_nc_mul MonoidAlgebra.liftNC_mul
+-/
 
 end Mul
 
@@ -183,14 +191,18 @@ variable [NonAssocSemiring R] [Semiring k] [One G]
 instance : One (MonoidAlgebra k G) :=
   ⟨single 1 1⟩
 
+#print MonoidAlgebra.one_def /-
 theorem one_def : (1 : MonoidAlgebra k G) = single 1 1 :=
   rfl
 #align monoid_algebra.one_def MonoidAlgebra.one_def
+-/
 
+#print MonoidAlgebra.liftNC_one /-
 @[simp]
 theorem liftNC_one {g_hom : Type _} [OneHomClass g_hom G R] (f : k →+* R) (g : g_hom) :
     liftNC (f : k →+ R) g 1 = 1 := by simp [one_def]
 #align monoid_algebra.lift_nc_one MonoidAlgebra.liftNC_one
+-/
 
 end One
 
@@ -214,9 +226,11 @@ instance : NonAssocSemiring (MonoidAlgebra k G) :=
       simp only [mul_def, one_def, sum_single_index, MulZeroClass.mul_zero, single_zero, sum_zero,
         add_zero, mul_one, sum_single] }
 
+#print MonoidAlgebra.nat_cast_def /-
 theorem nat_cast_def (n : ℕ) : (n : MonoidAlgebra k G) = single 1 n :=
   rfl
 #align monoid_algebra.nat_cast_def MonoidAlgebra.nat_cast_def
+-/
 
 end MulOneClass
 
@@ -237,6 +251,7 @@ instance : Semiring (MonoidAlgebra k G) :=
 
 variable [Semiring R]
 
+#print MonoidAlgebra.liftNCRingHom /-
 /-- `lift_nc` as a `ring_hom`, for when `f x` and `g y` commute -/
 def liftNCRingHom (f : k →+* R) (g : G →* R) (h_comm : ∀ x y, Commute (f x) (g y)) :
     MonoidAlgebra k G →+* R :=
@@ -245,6 +260,7 @@ def liftNCRingHom (f : k →+* R) (g : G →* R) (h_comm : ∀ x y, Commute (f x
     map_one' := liftNC_one _ _
     map_mul' := fun a b => liftNC_mul _ _ _ _ fun _ _ _ => h_comm _ _ }
 #align monoid_algebra.lift_nc_ring_hom MonoidAlgebra.liftNCRingHom
+-/
 
 end Semiring
 
@@ -285,9 +301,11 @@ instance [Ring k] [MulOneClass G] : NonAssocRing (MonoidAlgebra k G) :=
     intCast_ofNat := fun n => by simpa
     intCast_negSucc := fun n => by simpa }
 
+#print MonoidAlgebra.int_cast_def /-
 theorem int_cast_def [Ring k] [MulOneClass G] (z : ℤ) : (z : MonoidAlgebra k G) = single 1 z :=
   rfl
 #align monoid_algebra.int_cast_def MonoidAlgebra.int_cast_def
+-/
 
 instance [Ring k] [Monoid G] : Ring (MonoidAlgebra k G) :=
   { MonoidAlgebra.nonAssocRing, MonoidAlgebra.semiring with }
@@ -344,15 +362,18 @@ variable [Semiring k]
 
 attribute [local reducible] MonoidAlgebra
 
+#print 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 :=
   by
   rw [mul_def]
   simp only [Finsupp.sum_apply, single_apply]
 #align monoid_algebra.mul_apply MonoidAlgebra.mul_apply
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print 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 in s, f p.1 * g p.2 := by
   classical exact
@@ -372,23 +393,29 @@ theorem mul_apply_antidiagonal [Mul G] (f g : MonoidAlgebra k G) (x : G) (s : Fi
           · rw [h1, MulZeroClass.zero_mul]
           · rw [hp hps h1, MulZeroClass.mul_zero]
 #align monoid_algebra.mul_apply_antidiagonal MonoidAlgebra.mul_apply_antidiagonal
+-/
 
+#print MonoidAlgebra.single_mul_single /-
 @[simp]
 theorem single_mul_single [Mul G] {a₁ a₂ : G} {b₁ b₂ : k} :
     (single a₁ b₁ : MonoidAlgebra k G) * single a₂ b₂ = single (a₁ * a₂) (b₁ * b₂) :=
   (sum_single_index (by simp only [MulZeroClass.zero_mul, single_zero, sum_zero])).trans
     (sum_single_index (by rw [MulZeroClass.mul_zero, single_zero]))
 #align monoid_algebra.single_mul_single MonoidAlgebra.single_mul_single
+-/
 
+#print MonoidAlgebra.single_pow /-
 @[simp]
 theorem single_pow [Monoid G] {a : G} {b : k} :
     ∀ n : ℕ, (single a b : MonoidAlgebra k G) ^ n = single (a ^ n) (b ^ n)
   | 0 => by simp only [pow_zero]; rfl
   | n + 1 => by simp only [pow_succ, single_pow n, single_mul_single]
 #align monoid_algebra.single_pow MonoidAlgebra.single_pow
+-/
 
 section
 
+#print MonoidAlgebra.mapDomain_one /-
 /-- Like `finsupp.map_domain_zero`, but for the `1` we define in this file -/
 @[simp]
 theorem mapDomain_one {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [One α] [One α₂]
@@ -396,7 +423,9 @@ theorem mapDomain_one {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β]
     (mapDomain f (1 : MonoidAlgebra β α) : MonoidAlgebra β α₂) = (1 : MonoidAlgebra β α₂) := by
   simp_rw [one_def, map_domain_single, map_one]
 #align monoid_algebra.map_domain_one MonoidAlgebra.mapDomain_one
+-/
 
+#print MonoidAlgebra.mapDomain_mul /-
 /-- Like `finsupp.map_domain_add`, but for the convolutive multiplication we define in this file -/
 theorem mapDomain_mul {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [Mul α] [Mul α₂]
     {F : Type _} [MulHomClass F α α₂] (f : F) (x y : MonoidAlgebra β α) :
@@ -413,6 +442,7 @@ theorem mapDomain_mul {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β]
   · simp
   · simp [add_mul]
 #align monoid_algebra.map_domain_mul MonoidAlgebra.mapDomain_mul
+-/
 
 variable (k G)
 
@@ -439,13 +469,18 @@ def of [MulOneClass G] : G →* MonoidAlgebra k G :=
 
 end
 
+#print MonoidAlgebra.smul_of /-
 theorem smul_of [MulOneClass G] (g : G) (r : k) : r • of k G g = single g r := by simp
 #align monoid_algebra.smul_of MonoidAlgebra.smul_of
+-/
 
+#print MonoidAlgebra.of_injective /-
 theorem of_injective [MulOneClass G] [Nontrivial k] : Function.Injective (of k G) := fun a b h => by
   simpa using (single_eq_single_iff _ _ _ _).mp h
 #align monoid_algebra.of_injective MonoidAlgebra.of_injective
+-/
 
+#print MonoidAlgebra.singleHom /-
 /-- `finsupp.single` as a `monoid_hom` from the product type into the monoid algebra.
 
 Note the order of the elements of the product are reversed compared to the arguments of
@@ -458,7 +493,9 @@ def singleHom [MulOneClass G] : k × G →* MonoidAlgebra k G
   map_one' := rfl
   map_mul' a b := single_mul_single.symm
 #align monoid_algebra.single_hom MonoidAlgebra.singleHom
+-/
 
+#print 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 := by
   classical exact
@@ -473,12 +510,16 @@ theorem mul_single_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
       _ = if y ∈ f.support then f y * r else 0 := (f.support.sum_ite_eq' _ _)
       _ = f y * r := by split_ifs with h <;> simp at h  <;> simp [h]
 #align monoid_algebra.mul_single_apply_aux MonoidAlgebra.mul_single_apply_aux
+-/
 
+#print MonoidAlgebra.mul_single_one_apply /-
 theorem mul_single_one_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x : G) :
     (f * single 1 r) x = f x * r :=
   f.mul_single_apply_aux fun a => by rw [mul_one]
 #align monoid_algebra.mul_single_one_apply MonoidAlgebra.mul_single_one_apply
+-/
 
+#print 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 * Finsupp.single g r : MonoidAlgebra k G) g' = 0 := by
   classical
@@ -491,7 +532,9 @@ theorem mul_single_apply_of_not_exists_mul [Mul G] (r : k) {g g' : G} (x : Monoi
     exfalso
     exact h ⟨_, rfl⟩
 #align monoid_algebra.mul_single_apply_of_not_exists_mul MonoidAlgebra.mul_single_apply_of_not_exists_mul
+-/
 
+#print 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 := by
   classical exact
@@ -503,12 +546,16 @@ theorem single_mul_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
       _ = if z ∈ f.support then r * f z else 0 := (f.support.sum_ite_eq' _ _)
       _ = _ := by split_ifs with h <;> simp at h  <;> simp [h]
 #align monoid_algebra.single_mul_apply_aux MonoidAlgebra.single_mul_apply_aux
+-/
 
+#print MonoidAlgebra.single_one_mul_apply /-
 theorem single_one_mul_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x : G) :
     (single 1 r * f) x = r * f x :=
   f.single_mul_apply_aux fun a => by rw [one_mul]
 #align monoid_algebra.single_one_mul_apply MonoidAlgebra.single_one_mul_apply
+-/
 
+#print 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) : (Finsupp.single g r * x : MonoidAlgebra k G) g' = 0 := by
   classical
@@ -521,7 +568,9 @@ theorem single_mul_apply_of_not_exists_mul [Mul G] (r : k) {g g' : G} (x : Monoi
     exfalso
     exact h ⟨_, rfl⟩
 #align monoid_algebra.single_mul_apply_of_not_exists_mul MonoidAlgebra.single_mul_apply_of_not_exists_mul
+-/
 
+#print 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 φ :=
   by
@@ -531,6 +580,7 @@ theorem liftNC_smul [MulOneClass G] {R : Type _} [Semiring R] (f : k →+* R) (g
   exact AddMonoidHom.congr_fun this φ
   ext (a b); simp [mul_assoc]
 #align monoid_algebra.lift_nc_smul MonoidAlgebra.liftNC_smul
+-/
 
 end MiscTheorems
 
@@ -541,6 +591,7 @@ section NonUnitalNonAssocAlgebra
 
 variable (k) [Semiring k] [DistribSMul R k] [Mul G]
 
+#print MonoidAlgebra.isScalarTower_self /-
 instance isScalarTower_self [IsScalarTower R k k] :
     IsScalarTower R (MonoidAlgebra k G) (MonoidAlgebra k G) :=
   ⟨fun t a b => by
@@ -549,7 +600,9 @@ instance isScalarTower_self [IsScalarTower R k k] :
       MulZeroClass.zero_mul, if_t_t, imp_true_iff, eq_self_iff_true, sum_zero, coe_smul,
       smul_eq_mul, Pi.smul_apply, smul_zero]⟩
 #align monoid_algebra.is_scalar_tower_self MonoidAlgebra.isScalarTower_self
+-/
 
+#print MonoidAlgebra.sMulCommClass_self /-
 /-- Note that if `k` is a `comm_semiring` then we have `smul_comm_class k k k` and so we can take
 `R = k` in the below. In other words, if the coefficients are commutative amongst themselves, they
 also commute with the algebra multiplication. -/
@@ -562,14 +615,18 @@ instance sMulCommClass_self [SMulCommClass R k k] :
       imp_true_iff, eq_self_iff_true, coe_smul, ite_eq_right_iff, smul_eq_mul, Pi.smul_apply,
       MulZeroClass.mul_zero, smul_zero]⟩
 #align monoid_algebra.smul_comm_class_self MonoidAlgebra.sMulCommClass_self
+-/
 
+#print MonoidAlgebra.sMulCommClass_symm_self /-
 instance sMulCommClass_symm_self [SMulCommClass k R k] :
     SMulCommClass (MonoidAlgebra k G) R (MonoidAlgebra k G) :=
   ⟨fun t a b => by haveI := SMulCommClass.symm k R k; rw [← smul_comm]⟩
 #align monoid_algebra.smul_comm_class_symm_self MonoidAlgebra.sMulCommClass_symm_self
+-/
 
 variable {A : Type u₃} [NonUnitalNonAssocSemiring A]
 
+#print MonoidAlgebra.nonUnitalAlgHom_ext /-
 /-- A non_unital `k`-algebra homomorphism from `monoid_algebra k G` is uniquely defined by its
 values on the functions `single a 1`. -/
 theorem nonUnitalAlgHom_ext [DistribMulAction k A] {φ₁ φ₂ : MonoidAlgebra k G →ₙₐ[k] A}
@@ -577,14 +634,18 @@ theorem nonUnitalAlgHom_ext [DistribMulAction k A] {φ₁ φ₂ : MonoidAlgebra
   NonUnitalAlgHom.to_distribMulActionHom_injective <|
     Finsupp.distribMulActionHom_ext' fun a => DistribMulActionHom.ext_ring (h a)
 #align monoid_algebra.non_unital_alg_hom_ext MonoidAlgebra.nonUnitalAlgHom_ext
+-/
 
+#print MonoidAlgebra.nonUnitalAlgHom_ext' /-
 /-- See note [partially-applied ext lemmas]. -/
 @[ext]
 theorem nonUnitalAlgHom_ext' [DistribMulAction k A] {φ₁ φ₂ : MonoidAlgebra k G →ₙₐ[k] A}
     (h : φ₁.toMulHom.comp (ofMagma k G) = φ₂.toMulHom.comp (ofMagma k G)) : φ₁ = φ₂ :=
   nonUnitalAlgHom_ext k <| MulHom.congr_fun h
 #align monoid_algebra.non_unital_alg_hom_ext' MonoidAlgebra.nonUnitalAlgHom_ext'
+-/
 
+#print MonoidAlgebra.liftMagma /-
 /-- The functor `G ↦ monoid_algebra k G`, from the category of magmas to the category of non-unital,
 non-associative algebras over `k` is adjoint to the forgetful functor in the other direction. -/
 @[simps]
@@ -617,6 +678,7 @@ def liftMagma [Module k A] [IsScalarTower k A A] [SMulCommClass k A A] :
       sum_single_index, Function.comp_apply, one_smul, zero_smul, MulHom.coe_comp,
       NonUnitalAlgHom.coe_to_mulHom]
 #align monoid_algebra.lift_magma MonoidAlgebra.liftMagma
+-/
 
 end NonUnitalNonAssocAlgebra
 
@@ -627,10 +689,12 @@ section Algebra
 
 attribute [local reducible] MonoidAlgebra
 
+#print MonoidAlgebra.single_one_comm /-
 theorem single_one_comm [CommSemiring k] [MulOneClass G] (r : k) (f : MonoidAlgebra k G) :
     single 1 r * f = f * single 1 r := by ext;
   rw [single_one_mul_apply, mul_single_one_apply, mul_comm]
 #align monoid_algebra.single_one_comm MonoidAlgebra.single_one_comm
+-/
 
 #print MonoidAlgebra.singleOneRingHom /-
 /-- `finsupp.single 1` as a `ring_hom` -/
@@ -657,6 +721,7 @@ def mapDomainRingHom (k : Type _) {H F : Type _} [Semiring k] [Monoid G] [Monoid
 #align monoid_algebra.map_domain_ring_hom MonoidAlgebra.mapDomainRingHom
 -/
 
+#print MonoidAlgebra.ringHom_ext /-
 /-- If two ring homomorphisms from `monoid_algebra k G` are equal on all `single a 1`
 and `single 1 b`, then they are equal. -/
 theorem ringHom_ext {R} [Semiring k] [MulOneClass G] [Semiring R] {f g : MonoidAlgebra k G →+* R}
@@ -667,7 +732,9 @@ theorem ringHom_ext {R} [Semiring k] [MulOneClass G] [Semiring R] {f g : MonoidA
       rw [← one_mul a, ← mul_one b, ← single_mul_single, f.coe_add_monoid_hom, g.coe_add_monoid_hom,
         f.map_mul, g.map_mul, h₁, h_of]
 #align monoid_algebra.ring_hom_ext MonoidAlgebra.ringHom_ext
+-/
 
+#print MonoidAlgebra.ringHom_ext' /-
 /-- If two ring homomorphisms from `monoid_algebra k G` are equal on all `single a 1`
 and `single 1 b`, then they are equal.
 
@@ -680,6 +747,7 @@ theorem ringHom_ext' {R} [Semiring k] [MulOneClass G] [Semiring R] {f g : Monoid
     f = g :=
   ringHom_ext (RingHom.congr_fun h₁) (MonoidHom.congr_fun h_of)
 #align monoid_algebra.ring_hom_ext' MonoidAlgebra.ringHom_ext'
+-/
 
 /-- The instance `algebra k (monoid_algebra A G)` whenever we have `algebra k A`.
 
@@ -704,21 +772,28 @@ def singleOneAlgHom {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Mo
 #align monoid_algebra.single_one_alg_hom MonoidAlgebra.singleOneAlgHom
 -/
 
+#print 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 :=
   rfl
 #align monoid_algebra.coe_algebra_map MonoidAlgebra.coe_algebraMap
+-/
 
+#print 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 := by simp
 #align monoid_algebra.single_eq_algebra_map_mul_of MonoidAlgebra.single_eq_algebraMap_mul_of
+-/
 
+#print 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 := by simp
 #align monoid_algebra.single_algebra_map_eq_algebra_map_mul_of MonoidAlgebra.single_algebraMap_eq_algebraMap_mul_of
+-/
 
+#print 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 :=
@@ -728,6 +803,7 @@ theorem induction_on [Semiring k] [Monoid G] {p : MonoidAlgebra k G → Prop} (f
   · convert hsmul r (of k G g) (hM g)
     simp only [mul_one, smul_single', of_apply]
 #align monoid_algebra.induction_on MonoidAlgebra.induction_on
+-/
 
 end Algebra
 
@@ -737,6 +813,7 @@ variable {k G} [CommSemiring k] [Monoid G]
 
 variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [Algebra k B]
 
+#print MonoidAlgebra.liftNCAlgHom /-
 /-- `lift_nc_ring_hom` as a `alg_hom`, for when `f` is an `alg_hom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
     MonoidAlgebra A G →ₐ[k] B :=
@@ -746,14 +823,18 @@ def liftNCAlgHom (f : A →ₐ[k] B) (g : G →* B) (h_comm : ∀ x y, Commute (
     toFun := liftNCRingHom (f : A →+* B) g h_comm
     commutes' := by simp [lift_nc_ring_hom] }
 #align monoid_algebra.lift_nc_alg_hom MonoidAlgebra.liftNCAlgHom
+-/
 
+#print MonoidAlgebra.algHom_ext /-
 /-- A `k`-algebra homomorphism from `monoid_algebra k G` is uniquely defined by its
 values on the functions `single a 1`. -/
 theorem algHom_ext ⦃φ₁ φ₂ : MonoidAlgebra k G →ₐ[k] A⦄
     (h : ∀ x, φ₁ (single x 1) = φ₂ (single x 1)) : φ₁ = φ₂ :=
   AlgHom.toLinearMap_injective <| Finsupp.lhom_ext' fun a => LinearMap.ext_ring (h a)
 #align monoid_algebra.alg_hom_ext MonoidAlgebra.algHom_ext
+-/
 
+#print MonoidAlgebra.algHom_ext' /-
 /-- See note [partially-applied ext lemmas]. -/
 @[ext]
 theorem algHom_ext' ⦃φ₁ φ₂ : MonoidAlgebra k G →ₐ[k] A⦄
@@ -762,6 +843,7 @@ theorem algHom_ext' ⦃φ₁ φ₂ : MonoidAlgebra k G →ₐ[k] A⦄
     φ₁ = φ₂ :=
   algHom_ext <| MonoidHom.congr_fun h
 #align monoid_algebra.alg_hom_ext' MonoidAlgebra.algHom_ext'
+-/
 
 variable (k G A)
 
@@ -779,33 +861,45 @@ def lift : (G →* A) ≃ (MonoidAlgebra k G →ₐ[k] A)
 
 variable {k G A}
 
+#print 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 :=
   rfl
 #align monoid_algebra.lift_apply' MonoidAlgebra.lift_apply'
+-/
 
+#print 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 := by simp only [lift_apply', Algebra.smul_def]
 #align monoid_algebra.lift_apply MonoidAlgebra.lift_apply
+-/
 
+#print MonoidAlgebra.lift_def /-
 theorem lift_def (F : G →* A) : ⇑(lift k G A F) = liftNC ((algebraMap k A : k →+* A) : k →+ A) F :=
   rfl
 #align monoid_algebra.lift_def MonoidAlgebra.lift_def
+-/
 
+#print 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) :=
   rfl
 #align monoid_algebra.lift_symm_apply MonoidAlgebra.lift_symm_apply
+-/
 
+#print MonoidAlgebra.lift_of /-
 theorem lift_of (F : G →* A) (x) : lift k G A F (of k G x) = F x := by
   rw [of_apply, ← lift_symm_apply, Equiv.symm_apply_apply]
 #align monoid_algebra.lift_of MonoidAlgebra.lift_of
+-/
 
+#print MonoidAlgebra.lift_single /-
 @[simp]
 theorem lift_single (F : G →* A) (a b) : lift k G A F (single a b) = b • F a := by
   rw [lift_def, lift_nc_single, Algebra.smul_def, RingHom.coe_addMonoidHom]
 #align monoid_algebra.lift_single MonoidAlgebra.lift_single
+-/
 
 #print MonoidAlgebra.lift_unique' /-
 theorem lift_unique' (F : MonoidAlgebra k G →ₐ[k] A) :
@@ -814,6 +908,7 @@ theorem lift_unique' (F : MonoidAlgebra k G →ₐ[k] A) :
 #align monoid_algebra.lift_unique' MonoidAlgebra.lift_unique'
 -/
 
+#print MonoidAlgebra.lift_unique /-
 /-- Decomposition of a `k`-algebra homomorphism from `monoid_algebra k G` by
 its values on `F (single a 1)`. -/
 theorem lift_unique (F : MonoidAlgebra k G →ₐ[k] A) (f : MonoidAlgebra k G) :
@@ -822,6 +917,7 @@ theorem lift_unique (F : MonoidAlgebra k G →ₐ[k] A) (f : MonoidAlgebra k G)
     rw [lift_unique' F]
     simp [lift_apply]
 #align monoid_algebra.lift_unique MonoidAlgebra.lift_unique
+-/
 
 #print MonoidAlgebra.mapDomainNonUnitalAlgHom /-
 /-- If `f : G → H` is a homomorphism between two magmas, then
@@ -839,11 +935,13 @@ def mapDomainNonUnitalAlgHom (k A : Type _) [CommSemiring k] [Semiring A] [Algeb
 #align monoid_algebra.map_domain_non_unital_alg_hom MonoidAlgebra.mapDomainNonUnitalAlgHom
 -/
 
+#print MonoidAlgebra.mapDomain_algebraMap /-
 theorem mapDomain_algebraMap (k A : Type _) {H F : Type _} [CommSemiring k] [Semiring A]
     [Algebra k A] [Monoid H] [MonoidHomClass F G H] (f : F) (r : k) :
     mapDomain f (algebraMap k (MonoidAlgebra A G) r) = algebraMap k (MonoidAlgebra A H) r := by
   simp only [coe_algebra_map, map_domain_single, map_one]
 #align monoid_algebra.map_domain_algebra_map MonoidAlgebra.mapDomain_algebraMap
+-/
 
 #print MonoidAlgebra.mapDomainAlgHom /-
 /-- If `f : G → H` is a multiplicative homomorphism between two monoids, then
@@ -874,12 +972,14 @@ def GroupSmul.linearMap [Monoid G] [CommSemiring k] (V : Type u₃) [AddCommMono
 #align monoid_algebra.group_smul.linear_map MonoidAlgebra.GroupSmul.linearMap
 -/
 
+#print 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 : V) :=
   rfl
 #align monoid_algebra.group_smul.linear_map_apply MonoidAlgebra.GroupSmul.linearMap_apply
+-/
 
 section
 
@@ -891,8 +991,7 @@ variable [Monoid G] [CommSemiring k] {V W : Type u₃} [AddCommMonoid V] [Module
   (f : V →ₗ[k] W)
   (h : ∀ (g : G) (v : V), f (single g (1 : k) • v : V) = (single g (1 : k) • f v : W))
 
-include h
-
+#print MonoidAlgebra.equivariantOfLinearOfComm /-
 /-- Build a `k[G]`-linear map from a `k`-linear map and evidence that it is `G`-equivariant. -/
 def equivariantOfLinearOfComm : V →ₗ[MonoidAlgebra k G] W
     where
@@ -908,11 +1007,14 @@ def equivariantOfLinearOfComm : V →ₗ[MonoidAlgebra k G] W
         h g v, of_apply]
       all_goals infer_instance
 #align monoid_algebra.equivariant_of_linear_of_comm MonoidAlgebra.equivariantOfLinearOfComm
+-/
 
+#print MonoidAlgebra.equivariantOfLinearOfComm_apply /-
 @[simp]
 theorem equivariantOfLinearOfComm_apply (v : V) : (equivariantOfLinearOfComm f h) v = f v :=
   rfl
 #align monoid_algebra.equivariant_of_linear_of_comm_apply MonoidAlgebra.equivariantOfLinearOfComm_apply
+-/
 
 end
 
@@ -926,11 +1028,13 @@ variable {ι : Type ui}
 
 attribute [local reducible] MonoidAlgebra
 
+#print MonoidAlgebra.prod_single /-
 theorem prod_single [CommSemiring k] [CommMonoid G] {s : Finset ι} {a : ι → G} {b : ι → k} :
     ∏ i in s, single (a i) (b i) = single (∏ i in s, a i) (∏ i in s, b i) :=
   Finset.cons_induction_on s rfl fun a s has ih => by
     rw [prod_cons has, ih, single_mul_single, prod_cons has, prod_cons has]
 #align monoid_algebra.prod_single MonoidAlgebra.prod_single
+-/
 
 end
 
@@ -941,18 +1045,23 @@ variable [Semiring k] [Group G]
 
 attribute [local reducible] MonoidAlgebra
 
+#print 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 :=
   f.mul_single_apply_aux fun a => eq_mul_inv_iff_mul_eq.symm
 #align monoid_algebra.mul_single_apply MonoidAlgebra.mul_single_apply
+-/
 
+#print 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) :=
   f.single_mul_apply_aux fun z => eq_inv_mul_iff_mul_eq.symm
 #align monoid_algebra.single_mul_apply MonoidAlgebra.single_mul_apply
+-/
 
+#print 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) :=
   calc
@@ -960,7 +1069,9 @@ theorem mul_apply_left (f g : MonoidAlgebra k G) (x : G) :
       rw [← Finsupp.sum_apply, ← Finsupp.sum_mul, f.sum_single]
     _ = _ := by simp only [single_mul_apply, Finsupp.sum]
 #align monoid_algebra.mul_apply_left MonoidAlgebra.mul_apply_left
+-/
 
+#print MonoidAlgebra.mul_apply_right /-
 -- If we'd assumed `comm_semiring`, we could deduce this from `mul_apply_left`.
 theorem mul_apply_right (f g : MonoidAlgebra k G) (x : G) :
     (f * g) x = g.Sum fun a b => f (x * a⁻¹) * b :=
@@ -969,6 +1080,7 @@ theorem mul_apply_right (f g : MonoidAlgebra k G) (x : G) :
       rw [← Finsupp.sum_apply, ← Finsupp.mul_sum, g.sum_single]
     _ = _ := by simp only [mul_single_apply, Finsupp.sum]
 #align monoid_algebra.mul_apply_right MonoidAlgebra.mul_apply_right
+-/
 
 end
 
@@ -978,6 +1090,7 @@ open Finsupp MulOpposite
 
 variable [Semiring k]
 
+#print MonoidAlgebra.opRingEquiv /-
 /-- The opposite of an `monoid_algebra R I` equivalent as a ring to
 the `monoid_algebra Rᵐᵒᵖ Iᵐᵒᵖ` over the opposite ring, taking elements to their opposite. -/
 @[simps (config := { simpRhs := true })]
@@ -992,6 +1105,7 @@ protected noncomputable def opRingEquiv [Monoid G] :
       ext (i₁ r₁ i₂ r₂) : 6
       simp }
 #align monoid_algebra.op_ring_equiv MonoidAlgebra.opRingEquiv
+-/
 
 #print MonoidAlgebra.opRingEquiv_single /-
 @[simp]
@@ -1017,6 +1131,7 @@ variable {V : Type _} [AddCommMonoid V]
 
 variable [Module k V] [Module (MonoidAlgebra k G) V] [IsScalarTower k (MonoidAlgebra k G) V]
 
+#print MonoidAlgebra.submoduleOfSmulMem /-
 /-- A submodule over `k` which is stable under scalar multiplication by elements of `G` is a
 submodule over `monoid_algebra k G`  -/
 def submoduleOfSmulMem (W : Submodule k V) (h : ∀ (g : G) (v : V), v ∈ W → of k G g • v ∈ W) :
@@ -1030,6 +1145,7 @@ def submoduleOfSmulMem (W : Submodule k V) (h : ∀ (g : G) (v : V), v ∈ W →
     simp_rw [← smul_of, smul_assoc]
     exact Submodule.sum_smul_mem W _ fun g _ => h g v hv
 #align monoid_algebra.submodule_of_smul_mem MonoidAlgebra.submoduleOfSmulMem
+-/
 
 end Submodule
 
@@ -1066,6 +1182,7 @@ section
 
 variable [Semiring k] [NonUnitalNonAssocSemiring R]
 
+#print AddMonoidAlgebra.liftNC /-
 /-- A non-commutative version of `add_monoid_algebra.lift`: given a additive homomorphism `f : k →+
 R` and a map `g : multiplicative G → R`, returns the additive
 homomorphism from `add_monoid_algebra k G` such that `lift_nc f g (single a b) = f b * g a`. If `f`
@@ -1075,12 +1192,15 @@ homomorphism called `add_monoid_algebra.lift`. -/
 def liftNC (f : k →+ R) (g : Multiplicative G → R) : AddMonoidAlgebra k G →+ R :=
   liftAddHom fun x : G => (AddMonoidHom.mulRight (g <| Multiplicative.ofAdd x)).comp f
 #align add_monoid_algebra.lift_nc AddMonoidAlgebra.liftNC
+-/
 
+#print 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) :=
   liftAddHom_apply_single _ _ _
 #align add_monoid_algebra.lift_nc_single AddMonoidAlgebra.liftNC_single
+-/
 
 end
 
@@ -1095,10 +1215,12 @@ variable [Semiring k] [Add G]
 instance : Mul (AddMonoidAlgebra k G) :=
   ⟨fun f g => f.Sum fun a₁ b₁ => g.Sum fun a₂ b₂ => single (a₁ + a₂) (b₁ * b₂)⟩
 
+#print AddMonoidAlgebra.mul_def /-
 theorem mul_def {f g : AddMonoidAlgebra k G} :
     f * g = f.Sum fun a₁ b₁ => g.Sum fun a₂ b₂ => single (a₁ + a₂) (b₁ * b₂) :=
   rfl
 #align add_monoid_algebra.mul_def AddMonoidAlgebra.mul_def
+-/
 
 instance : NonUnitalNonAssocSemiring (AddMonoidAlgebra k G) :=
   { Finsupp.addCommMonoid with
@@ -1122,12 +1244,14 @@ instance : NonUnitalNonAssocSemiring (AddMonoidAlgebra k G) :=
 
 variable [Semiring R]
 
+#print AddMonoidAlgebra.liftNC_mul /-
 theorem liftNC_mul {g_hom : Type _} [MulHomClass g_hom (Multiplicative G) R] (f : k →+* R)
     (g : g_hom) (a b : AddMonoidAlgebra 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 :=
   (MonoidAlgebra.liftNC_mul f g _ _ @h_comm : _)
 #align add_monoid_algebra.lift_nc_mul AddMonoidAlgebra.liftNC_mul
+-/
 
 end Mul
 
@@ -1140,15 +1264,19 @@ variable [Semiring k] [Zero G] [NonAssocSemiring R]
 instance : One (AddMonoidAlgebra k G) :=
   ⟨single 0 1⟩
 
+#print AddMonoidAlgebra.one_def /-
 theorem one_def : (1 : AddMonoidAlgebra k G) = single 0 1 :=
   rfl
 #align add_monoid_algebra.one_def AddMonoidAlgebra.one_def
+-/
 
+#print AddMonoidAlgebra.liftNC_one /-
 @[simp]
 theorem liftNC_one {g_hom : Type _} [OneHomClass g_hom (Multiplicative G) R] (f : k →+* R)
     (g : g_hom) : liftNC (f : k →+ R) g 1 = 1 :=
   (MonoidAlgebra.liftNC_one f g : _)
 #align add_monoid_algebra.lift_nc_one AddMonoidAlgebra.liftNC_one
+-/
 
 end One
 
@@ -1191,9 +1319,11 @@ instance : NonAssocSemiring (AddMonoidAlgebra k G) :=
       simp only [mul_def, one_def, sum_single_index, MulZeroClass.mul_zero, single_zero, sum_zero,
         add_zero, mul_one, sum_single] }
 
+#print AddMonoidAlgebra.nat_cast_def /-
 theorem nat_cast_def (n : ℕ) : (n : AddMonoidAlgebra k G) = single 0 n :=
   rfl
 #align add_monoid_algebra.nat_cast_def AddMonoidAlgebra.nat_cast_def
+-/
 
 end MulOneClass
 
@@ -1217,6 +1347,7 @@ instance : Semiring (AddMonoidAlgebra k G) :=
 
 variable [Semiring R]
 
+#print AddMonoidAlgebra.liftNCRingHom /-
 /-- `lift_nc` as a `ring_hom`, for when `f` and `g` commute -/
 def liftNCRingHom (f : k →+* R) (g : Multiplicative G →* R) (h_comm : ∀ x y, Commute (f x) (g y)) :
     AddMonoidAlgebra k G →+* R :=
@@ -1225,6 +1356,7 @@ def liftNCRingHom (f : k →+* R) (g : Multiplicative G →* R) (h_comm : ∀ x
     map_one' := liftNC_one _ _
     map_mul' := fun a b => liftNC_mul _ _ _ _ fun _ _ _ => h_comm _ _ }
 #align add_monoid_algebra.lift_nc_ring_hom AddMonoidAlgebra.liftNCRingHom
+-/
 
 end Semiring
 
@@ -1262,9 +1394,11 @@ instance [Ring k] [AddZeroClass G] : NonAssocRing (AddMonoidAlgebra k G) :=
     intCast_ofNat := fun n => by simpa
     intCast_negSucc := fun n => by simpa }
 
+#print AddMonoidAlgebra.int_cast_def /-
 theorem int_cast_def [Ring k] [AddZeroClass G] (z : ℤ) : (z : AddMonoidAlgebra k G) = single 0 z :=
   rfl
 #align add_monoid_algebra.int_cast_def AddMonoidAlgebra.int_cast_def
+-/
 
 instance [Ring k] [AddMonoid G] : Ring (AddMonoidAlgebra k G) :=
   { AddMonoidAlgebra.nonAssocRing, AddMonoidAlgebra.semiring with }
@@ -1313,21 +1447,28 @@ section MiscTheorems
 
 variable [Semiring k]
 
+#print AddMonoidAlgebra.mul_apply /-
 theorem mul_apply [DecidableEq G] [Add G] (f g : AddMonoidAlgebra 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 :=
   @MonoidAlgebra.mul_apply k (Multiplicative G) _ _ _ _ _ _
 #align add_monoid_algebra.mul_apply AddMonoidAlgebra.mul_apply
+-/
 
+#print AddMonoidAlgebra.mul_apply_antidiagonal /-
 theorem mul_apply_antidiagonal [Add G] (f g : AddMonoidAlgebra k G) (x : G) (s : Finset (G × G))
     (hs : ∀ {p : G × G}, p ∈ s ↔ p.1 + p.2 = x) : (f * g) x = ∑ p in s, f p.1 * g p.2 :=
   @MonoidAlgebra.mul_apply_antidiagonal k (Multiplicative G) _ _ _ _ _ s @hs
 #align add_monoid_algebra.mul_apply_antidiagonal AddMonoidAlgebra.mul_apply_antidiagonal
+-/
 
+#print AddMonoidAlgebra.single_mul_single /-
 theorem single_mul_single [Add G] {a₁ a₂ : G} {b₁ b₂ : k} :
     (single a₁ b₁ * single a₂ b₂ : AddMonoidAlgebra k G) = single (a₁ + a₂) (b₁ * b₂) :=
   @MonoidAlgebra.single_mul_single k (Multiplicative G) _ _ _ _ _ _
 #align add_monoid_algebra.single_mul_single AddMonoidAlgebra.single_mul_single
+-/
 
+#print AddMonoidAlgebra.single_pow /-
 -- This should be a `@[simp]` lemma, but the simp_nf linter times out if we add this.
 -- Probably the correct fix is to make a `[add_]monoid_algebra.single` with the correct type,
 -- instead of relying on `finsupp.single`.
@@ -1337,7 +1478,9 @@ theorem single_pow [AddMonoid G] {a : G} {b : k} :
   | n + 1 => by
     rw [pow_succ, pow_succ, single_pow n, single_mul_single, add_comm, add_nsmul, one_nsmul]
 #align add_monoid_algebra.single_pow AddMonoidAlgebra.single_pow
+-/
 
+#print AddMonoidAlgebra.mapDomain_one /-
 /-- Like `finsupp.map_domain_zero`, but for the `1` we define in this file -/
 @[simp]
 theorem mapDomain_one {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [Zero α] [Zero α₂]
@@ -1346,7 +1489,9 @@ theorem mapDomain_one {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β]
       (1 : AddMonoidAlgebra β α₂) :=
   by simp_rw [one_def, map_domain_single, map_zero]
 #align add_monoid_algebra.map_domain_one AddMonoidAlgebra.mapDomain_one
+-/
 
+#print AddMonoidAlgebra.mapDomain_mul /-
 /-- Like `finsupp.map_domain_add`, but for the convolutive multiplication we define in this file -/
 theorem mapDomain_mul {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [Add α] [Add α₂]
     {F : Type _} [AddHomClass F α α₂] (f : F) (x y : AddMonoidAlgebra β α) :
@@ -1363,11 +1508,13 @@ theorem mapDomain_mul {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β]
   · simp
   · simp [add_mul]
 #align add_monoid_algebra.map_domain_mul AddMonoidAlgebra.mapDomain_mul
+-/
 
 section
 
 variable (k G)
 
+#print AddMonoidAlgebra.ofMagma /-
 /-- The embedding of an additive magma into its additive magma algebra. -/
 @[simps]
 def ofMagma [Add G] : Multiplicative G →ₙ* AddMonoidAlgebra k G
@@ -1376,6 +1523,7 @@ def ofMagma [Add G] : Multiplicative G →ₙ* AddMonoidAlgebra k G
   map_mul' a b := by
     simpa only [mul_def, mul_one, sum_single_index, single_eq_zero, MulZeroClass.mul_zero]
 #align add_monoid_algebra.of_magma AddMonoidAlgebra.ofMagma
+-/
 
 #print AddMonoidAlgebra.of /-
 /-- Embedding of a magma with zero into its magma algebra. -/
@@ -1394,24 +1542,33 @@ def of' : G → AddMonoidAlgebra k G := fun a => single a 1
 
 end
 
+#print AddMonoidAlgebra.of_apply /-
 @[simp]
 theorem of_apply [AddZeroClass G] (a : Multiplicative G) : of k G a = single a.toAdd 1 :=
   rfl
 #align add_monoid_algebra.of_apply AddMonoidAlgebra.of_apply
+-/
 
+#print AddMonoidAlgebra.of'_apply /-
 @[simp]
 theorem of'_apply (a : G) : of' k G a = single a 1 :=
   rfl
 #align add_monoid_algebra.of'_apply AddMonoidAlgebra.of'_apply
+-/
 
+#print AddMonoidAlgebra.of'_eq_of /-
 theorem of'_eq_of [AddZeroClass G] (a : G) : of' k G a = of k G a :=
   rfl
 #align add_monoid_algebra.of'_eq_of AddMonoidAlgebra.of'_eq_of
+-/
 
+#print AddMonoidAlgebra.of_injective /-
 theorem of_injective [Nontrivial k] [AddZeroClass G] : Function.Injective (of k G) := fun a b h =>
   by simpa using (single_eq_single_iff _ _ _ _).mp h
 #align add_monoid_algebra.of_injective AddMonoidAlgebra.of_injective
+-/
 
+#print AddMonoidAlgebra.singleHom /-
 /-- `finsupp.single` as a `monoid_hom` from the product type into the additive monoid algebra.
 
 Note the order of the elements of the product are reversed compared to the arguments of
@@ -1424,53 +1581,73 @@ def singleHom [AddZeroClass G] : k × Multiplicative G →* AddMonoidAlgebra k G
   map_one' := rfl
   map_mul' a b := single_mul_single.symm
 #align add_monoid_algebra.single_hom AddMonoidAlgebra.singleHom
+-/
 
+#print AddMonoidAlgebra.mul_single_apply_aux /-
 theorem mul_single_apply_aux [Add G] (f : AddMonoidAlgebra k G) (r : k) (x y z : G)
     (H : ∀ a, a + x = z ↔ a = y) : (f * single x r) z = f y * r :=
   @MonoidAlgebra.mul_single_apply_aux k (Multiplicative G) _ _ _ _ _ _ _ H
 #align add_monoid_algebra.mul_single_apply_aux AddMonoidAlgebra.mul_single_apply_aux
+-/
 
+#print AddMonoidAlgebra.mul_single_zero_apply /-
 theorem mul_single_zero_apply [AddZeroClass G] (f : AddMonoidAlgebra k G) (r : k) (x : G) :
     (f * single 0 r) x = f x * r :=
   f.mul_single_apply_aux r _ _ _ fun a => by rw [add_zero]
 #align add_monoid_algebra.mul_single_zero_apply AddMonoidAlgebra.mul_single_zero_apply
+-/
 
+#print AddMonoidAlgebra.mul_single_apply_of_not_exists_add /-
 theorem mul_single_apply_of_not_exists_add [Add G] (r : k) {g g' : G} (x : AddMonoidAlgebra k G)
     (h : ¬∃ d, g' = d + g) : (x * Finsupp.single g r : AddMonoidAlgebra k G) g' = 0 :=
   @MonoidAlgebra.mul_single_apply_of_not_exists_mul k (Multiplicative G) _ _ _ _ _ _ h
 #align add_monoid_algebra.mul_single_apply_of_not_exists_add AddMonoidAlgebra.mul_single_apply_of_not_exists_add
+-/
 
+#print AddMonoidAlgebra.single_mul_apply_aux /-
 theorem single_mul_apply_aux [Add G] (f : AddMonoidAlgebra k G) (r : k) (x y z : G)
     (H : ∀ a, x + a = y ↔ a = z) : (single x r * f : AddMonoidAlgebra k G) y = r * f z :=
   @MonoidAlgebra.single_mul_apply_aux k (Multiplicative G) _ _ _ _ _ _ _ H
 #align add_monoid_algebra.single_mul_apply_aux AddMonoidAlgebra.single_mul_apply_aux
+-/
 
+#print AddMonoidAlgebra.single_zero_mul_apply /-
 theorem single_zero_mul_apply [AddZeroClass G] (f : AddMonoidAlgebra k G) (r : k) (x : G) :
     (single 0 r * f : AddMonoidAlgebra k G) x = r * f x :=
   f.single_mul_apply_aux r _ _ _ fun a => by rw [zero_add]
 #align add_monoid_algebra.single_zero_mul_apply AddMonoidAlgebra.single_zero_mul_apply
+-/
 
+#print AddMonoidAlgebra.single_mul_apply_of_not_exists_add /-
 theorem single_mul_apply_of_not_exists_add [Add G] (r : k) {g g' : G} (x : AddMonoidAlgebra k G)
     (h : ¬∃ d, g' = g + d) : (Finsupp.single g r * x : AddMonoidAlgebra k G) g' = 0 :=
   @MonoidAlgebra.single_mul_apply_of_not_exists_mul k (Multiplicative G) _ _ _ _ _ _ h
 #align add_monoid_algebra.single_mul_apply_of_not_exists_add AddMonoidAlgebra.single_mul_apply_of_not_exists_add
+-/
 
+#print AddMonoidAlgebra.mul_single_apply /-
 theorem mul_single_apply [AddGroup G] (f : AddMonoidAlgebra k G) (r : k) (x y : G) :
     (f * single x r) y = f (y - x) * r :=
   (sub_eq_add_neg y x).symm ▸ @MonoidAlgebra.mul_single_apply k (Multiplicative G) _ _ _ _ _ _
 #align add_monoid_algebra.mul_single_apply AddMonoidAlgebra.mul_single_apply
+-/
 
+#print AddMonoidAlgebra.single_mul_apply /-
 theorem single_mul_apply [AddGroup G] (r : k) (x : G) (f : AddMonoidAlgebra k G) (y : G) :
     (single x r * f : AddMonoidAlgebra k G) y = r * f (-x + y) :=
   @MonoidAlgebra.single_mul_apply k (Multiplicative G) _ _ _ _ _ _
 #align add_monoid_algebra.single_mul_apply AddMonoidAlgebra.single_mul_apply
+-/
 
+#print AddMonoidAlgebra.liftNC_smul /-
 theorem liftNC_smul {R : Type _} [AddZeroClass G] [Semiring R] (f : k →+* R)
     (g : Multiplicative G →* R) (c : k) (φ : MonoidAlgebra k G) :
     liftNC (f : k →+ R) g (c • φ) = f c * liftNC (f : k →+ R) g φ :=
   @MonoidAlgebra.liftNC_smul k (Multiplicative G) _ _ _ _ f g c φ
 #align add_monoid_algebra.lift_nc_smul AddMonoidAlgebra.liftNC_smul
+-/
 
+#print AddMonoidAlgebra.induction_on /-
 theorem induction_on [AddMonoid G] {p : AddMonoidAlgebra k G → Prop} (f : AddMonoidAlgebra k G)
     (hM : ∀ g, p (of k G (Multiplicative.ofAdd g)))
     (hadd : ∀ f g : AddMonoidAlgebra k G, p f → p g → p (f + g))
@@ -1481,6 +1658,7 @@ theorem induction_on [AddMonoid G] {p : AddMonoidAlgebra k G → Prop} (f : AddM
   · convert hsmul r (of k G (Multiplicative.ofAdd g)) (hM g)
     simp only [mul_one, toAdd_ofAdd, smul_single', of_apply]
 #align add_monoid_algebra.induction_on AddMonoidAlgebra.induction_on
+-/
 
 #print AddMonoidAlgebra.mapDomainRingHom /-
 /-- If `f : G → H` is an additive homomorphism between two additive monoids, then
@@ -1511,6 +1689,7 @@ but for now we just contruct the ring isomorphisms using `ring_equiv.refl _`.
 -/
 
 
+#print AddMonoidAlgebra.toMultiplicative /-
 /-- The equivalence between `add_monoid_algebra` and `monoid_algebra` in terms of
 `multiplicative` -/
 protected def AddMonoidAlgebra.toMultiplicative [Semiring k] [Add G] :
@@ -1524,7 +1703,9 @@ protected def AddMonoidAlgebra.toMultiplicative [Semiring k] [Add G] :
       dsimp [Multiplicative.ofAdd]
       convert MonoidAlgebra.mapDomain_mul (MulHom.id (Multiplicative G)) _ _ }
 #align add_monoid_algebra.to_multiplicative AddMonoidAlgebra.toMultiplicative
+-/
 
+#print MonoidAlgebra.toAdditive /-
 /-- The equivalence between `monoid_algebra` and `add_monoid_algebra` in terms of `additive` -/
 protected def MonoidAlgebra.toAdditive [Semiring k] [Mul G] :
     MonoidAlgebra k G ≃+* AddMonoidAlgebra k (Additive G) :=
@@ -1536,6 +1717,7 @@ protected def MonoidAlgebra.toAdditive [Semiring k] [Mul G] :
       dsimp [Additive.ofMul]
       convert MonoidAlgebra.mapDomain_mul (MulHom.id G) _ _ }
 #align monoid_algebra.to_additive MonoidAlgebra.toAdditive
+-/
 
 namespace AddMonoidAlgebra
 
@@ -1548,11 +1730,14 @@ section NonUnitalNonAssocAlgebra
 
 variable (k) [Semiring k] [DistribSMul R k] [Add G]
 
+#print AddMonoidAlgebra.isScalarTower_self /-
 instance isScalarTower_self [IsScalarTower R k k] :
     IsScalarTower R (AddMonoidAlgebra k G) (AddMonoidAlgebra k G) :=
   @MonoidAlgebra.isScalarTower_self k (Multiplicative G) R _ _ _ _
 #align add_monoid_algebra.is_scalar_tower_self AddMonoidAlgebra.isScalarTower_self
+-/
 
+#print AddMonoidAlgebra.sMulCommClass_self /-
 /-- Note that if `k` is a `comm_semiring` then we have `smul_comm_class k k k` and so we can take
 `R = k` in the below. In other words, if the coefficients are commutative amongst themselves, they
 also commute with the algebra multiplication. -/
@@ -1560,28 +1745,36 @@ instance sMulCommClass_self [SMulCommClass R k k] :
     SMulCommClass R (AddMonoidAlgebra k G) (AddMonoidAlgebra k G) :=
   @MonoidAlgebra.sMulCommClass_self k (Multiplicative G) R _ _ _ _
 #align add_monoid_algebra.smul_comm_class_self AddMonoidAlgebra.sMulCommClass_self
+-/
 
+#print AddMonoidAlgebra.sMulCommClass_symm_self /-
 instance sMulCommClass_symm_self [SMulCommClass k R k] :
     SMulCommClass (AddMonoidAlgebra k G) R (AddMonoidAlgebra k G) :=
   @MonoidAlgebra.sMulCommClass_symm_self k (Multiplicative G) R _ _ _ _
 #align add_monoid_algebra.smul_comm_class_symm_self AddMonoidAlgebra.sMulCommClass_symm_self
+-/
 
 variable {A : Type u₃} [NonUnitalNonAssocSemiring A]
 
+#print AddMonoidAlgebra.nonUnitalAlgHom_ext /-
 /-- A non_unital `k`-algebra homomorphism from `add_monoid_algebra k G` is uniquely defined by its
 values on the functions `single a 1`. -/
 theorem nonUnitalAlgHom_ext [DistribMulAction k A] {φ₁ φ₂ : AddMonoidAlgebra k G →ₙₐ[k] A}
     (h : ∀ x, φ₁ (single x 1) = φ₂ (single x 1)) : φ₁ = φ₂ :=
   @MonoidAlgebra.nonUnitalAlgHom_ext k (Multiplicative G) _ _ _ _ _ φ₁ φ₂ h
 #align add_monoid_algebra.non_unital_alg_hom_ext AddMonoidAlgebra.nonUnitalAlgHom_ext
+-/
 
+#print AddMonoidAlgebra.nonUnitalAlgHom_ext' /-
 /-- See note [partially-applied ext lemmas]. -/
 @[ext]
 theorem nonUnitalAlgHom_ext' [DistribMulAction k A] {φ₁ φ₂ : AddMonoidAlgebra k G →ₙₐ[k] A}
     (h : φ₁.toMulHom.comp (ofMagma k G) = φ₂.toMulHom.comp (ofMagma k G)) : φ₁ = φ₂ :=
   @MonoidAlgebra.nonUnitalAlgHom_ext' k (Multiplicative G) _ _ _ _ _ φ₁ φ₂ h
 #align add_monoid_algebra.non_unital_alg_hom_ext' AddMonoidAlgebra.nonUnitalAlgHom_ext'
+-/
 
+#print AddMonoidAlgebra.liftMagma /-
 /-- The functor `G ↦ add_monoid_algebra k G`, from the category of magmas to the category of
 non-unital, non-associative algebras over `k` is adjoint to the forgetful functor in the other
 direction. -/
@@ -1598,6 +1791,7 @@ def liftMagma [Module k A] [IsScalarTower k A A] [SMulCommClass k A A] :
         toFun := fun a => Sum a fun m t => t • f (Multiplicative.ofAdd m) }
     invFun := fun F => F.toMulHom.comp (ofMagma k G) }
 #align add_monoid_algebra.lift_magma AddMonoidAlgebra.liftMagma
+-/
 
 end NonUnitalNonAssocAlgebra
 
@@ -1618,6 +1812,7 @@ def singleZeroRingHom [Semiring k] [AddMonoid G] : k →+* AddMonoidAlgebra k G
 #align add_monoid_algebra.single_zero_ring_hom AddMonoidAlgebra.singleZeroRingHom
 -/
 
+#print AddMonoidAlgebra.ringHom_ext /-
 /-- If two ring homomorphisms from `add_monoid_algebra k G` are equal on all `single a 1`
 and `single 0 b`, then they are equal. -/
 theorem ringHom_ext {R} [Semiring k] [AddMonoid G] [Semiring R] {f g : AddMonoidAlgebra k G →+* R}
@@ -1625,7 +1820,9 @@ theorem ringHom_ext {R} [Semiring k] [AddMonoid G] [Semiring R] {f g : AddMonoid
     f = g :=
   @MonoidAlgebra.ringHom_ext k (Multiplicative G) R _ _ _ _ _ h₀ h_of
 #align add_monoid_algebra.ring_hom_ext AddMonoidAlgebra.ringHom_ext
+-/
 
+#print AddMonoidAlgebra.ringHom_ext' /-
 /-- If two ring homomorphisms from `add_monoid_algebra k G` are equal on all `single a 1`
 and `single 0 b`, then they are equal.
 
@@ -1639,6 +1836,7 @@ theorem ringHom_ext' {R} [Semiring k] [AddMonoid G] [Semiring R] {f g : AddMonoi
     f = g :=
   ringHom_ext (RingHom.congr_fun h₁) (MonoidHom.congr_fun h_of)
 #align add_monoid_algebra.ring_hom_ext' AddMonoidAlgebra.ringHom_ext'
+-/
 
 section Opposite
 
@@ -1646,6 +1844,7 @@ open Finsupp MulOpposite
 
 variable [Semiring k]
 
+#print AddMonoidAlgebra.opRingEquiv /-
 /-- The opposite of an `add_monoid_algebra R I` is ring equivalent to
 the `add_monoid_algebra Rᵐᵒᵖ I` over the opposite ring, taking elements to their opposite. -/
 @[simps (config := { simpRhs := true })]
@@ -1661,6 +1860,7 @@ protected noncomputable def opRingEquiv [AddCommMonoid G] :
       dsimp
       simp only [map_range_single, single_mul_single, ← op_mul, add_comm] }
 #align add_monoid_algebra.op_ring_equiv AddMonoidAlgebra.opRingEquiv
+-/
 
 #print AddMonoidAlgebra.opRingEquiv_single /-
 @[simp]
@@ -1701,11 +1901,13 @@ def singleZeroAlgHom [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
 #align add_monoid_algebra.single_zero_alg_hom AddMonoidAlgebra.singleZeroAlgHom
 -/
 
+#print AddMonoidAlgebra.coe_algebraMap /-
 @[simp]
 theorem coe_algebraMap [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
     (algebraMap R (AddMonoidAlgebra k G) : R → AddMonoidAlgebra k G) = single 0 ∘ algebraMap R k :=
   rfl
 #align add_monoid_algebra.coe_algebra_map AddMonoidAlgebra.coe_algebraMap
+-/
 
 end Algebra
 
@@ -1715,6 +1917,7 @@ variable {k G} [CommSemiring k] [AddMonoid G]
 
 variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [Algebra k B]
 
+#print AddMonoidAlgebra.liftNCAlgHom /-
 /-- `lift_nc_ring_hom` as a `alg_hom`, for when `f` is an `alg_hom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : Multiplicative G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
     AddMonoidAlgebra A G →ₐ[k] B :=
@@ -1724,14 +1927,18 @@ def liftNCAlgHom (f : A →ₐ[k] B) (g : Multiplicative G →* B) (h_comm : ∀
     toFun := liftNCRingHom (f : A →+* B) g h_comm
     commutes' := by simp [lift_nc_ring_hom] }
 #align add_monoid_algebra.lift_nc_alg_hom AddMonoidAlgebra.liftNCAlgHom
+-/
 
+#print AddMonoidAlgebra.algHom_ext /-
 /-- A `k`-algebra homomorphism from `monoid_algebra k G` is uniquely defined by its
 values on the functions `single a 1`. -/
 theorem algHom_ext ⦃φ₁ φ₂ : AddMonoidAlgebra k G →ₐ[k] A⦄
     (h : ∀ x, φ₁ (single x 1) = φ₂ (single x 1)) : φ₁ = φ₂ :=
   @MonoidAlgebra.algHom_ext k (Multiplicative G) _ _ _ _ _ _ _ h
 #align add_monoid_algebra.alg_hom_ext AddMonoidAlgebra.algHom_ext
+-/
 
+#print AddMonoidAlgebra.algHom_ext' /-
 /-- See note [partially-applied ext lemmas]. -/
 @[ext]
 theorem algHom_ext' ⦃φ₁ φ₂ : AddMonoidAlgebra k G →ₐ[k] A⦄
@@ -1741,6 +1948,7 @@ theorem algHom_ext' ⦃φ₁ φ₂ : AddMonoidAlgebra k G →ₐ[k] A⦄
     φ₁ = φ₂ :=
   algHom_ext <| MonoidHom.congr_fun h
 #align add_monoid_algebra.alg_hom_ext' AddMonoidAlgebra.algHom_ext'
+-/
 
 variable (k G A)
 
@@ -1760,36 +1968,48 @@ def lift : (Multiplicative G →* A) ≃ (AddMonoidAlgebra k G →ₐ[k] A) :=
 
 variable {k G A}
 
+#print AddMonoidAlgebra.lift_apply' /-
 theorem lift_apply' (F : Multiplicative G →* A) (f : MonoidAlgebra k G) :
     lift k G A F f = f.Sum fun a b => algebraMap k A b * F (Multiplicative.ofAdd a) :=
   rfl
 #align add_monoid_algebra.lift_apply' AddMonoidAlgebra.lift_apply'
+-/
 
+#print AddMonoidAlgebra.lift_apply /-
 theorem lift_apply (F : Multiplicative G →* A) (f : MonoidAlgebra k G) :
     lift k G A F f = f.Sum fun a b => b • F (Multiplicative.ofAdd a) := by
   simp only [lift_apply', Algebra.smul_def]
 #align add_monoid_algebra.lift_apply AddMonoidAlgebra.lift_apply
+-/
 
+#print AddMonoidAlgebra.lift_def /-
 theorem lift_def (F : Multiplicative G →* A) :
     ⇑(lift k G A F) = liftNC ((algebraMap k A : k →+* A) : k →+ A) F :=
   rfl
 #align add_monoid_algebra.lift_def AddMonoidAlgebra.lift_def
+-/
 
+#print AddMonoidAlgebra.lift_symm_apply /-
 @[simp]
 theorem lift_symm_apply (F : AddMonoidAlgebra k G →ₐ[k] A) (x : Multiplicative G) :
     (lift k G A).symm F x = F (single x.toAdd 1) :=
   rfl
 #align add_monoid_algebra.lift_symm_apply AddMonoidAlgebra.lift_symm_apply
+-/
 
+#print AddMonoidAlgebra.lift_of /-
 theorem lift_of (F : Multiplicative G →* A) (x : Multiplicative G) :
     lift k G A F (of k G x) = F x := by rw [of_apply, ← lift_symm_apply, Equiv.symm_apply_apply]
 #align add_monoid_algebra.lift_of AddMonoidAlgebra.lift_of
+-/
 
+#print AddMonoidAlgebra.lift_single /-
 @[simp]
 theorem lift_single (F : Multiplicative G →* A) (a b) :
     lift k G A F (single a b) = b • F (Multiplicative.ofAdd a) := by
   rw [lift_def, lift_nc_single, Algebra.smul_def, RingHom.coe_addMonoidHom]
 #align add_monoid_algebra.lift_single AddMonoidAlgebra.lift_single
+-/
 
 #print AddMonoidAlgebra.lift_unique' /-
 theorem lift_unique' (F : AddMonoidAlgebra k G →ₐ[k] A) :
@@ -1798,6 +2018,7 @@ theorem lift_unique' (F : AddMonoidAlgebra k G →ₐ[k] A) :
 #align add_monoid_algebra.lift_unique' AddMonoidAlgebra.lift_unique'
 -/
 
+#print AddMonoidAlgebra.lift_unique /-
 /-- Decomposition of a `k`-algebra homomorphism from `monoid_algebra k G` by
 its values on `F (single a 1)`. -/
 theorem lift_unique (F : AddMonoidAlgebra k G →ₐ[k] A) (f : MonoidAlgebra k G) :
@@ -1806,11 +2027,14 @@ theorem lift_unique (F : AddMonoidAlgebra k G →ₐ[k] A) (f : MonoidAlgebra k
     rw [lift_unique' F]
     simp [lift_apply]
 #align add_monoid_algebra.lift_unique AddMonoidAlgebra.lift_unique
+-/
 
+#print AddMonoidAlgebra.algHom_ext_iff /-
 theorem algHom_ext_iff {φ₁ φ₂ : AddMonoidAlgebra k G →ₐ[k] A} :
     (∀ x, φ₁ (Finsupp.single x 1) = φ₂ (Finsupp.single x 1)) ↔ φ₁ = φ₂ :=
   ⟨fun h => algHom_ext h, by rintro rfl _ <;> rfl⟩
 #align add_monoid_algebra.alg_hom_ext_iff AddMonoidAlgebra.algHom_ext_iff
+-/
 
 end lift
 
@@ -1822,19 +2046,23 @@ universe ui
 
 variable {ι : Type ui}
 
+#print AddMonoidAlgebra.prod_single /-
 theorem prod_single [CommSemiring k] [AddCommMonoid G] {s : Finset ι} {a : ι → G} {b : ι → k} :
     ∏ i in s, single (a i) (b i) = single (∑ i in s, a i) (∏ i in s, b i) :=
   Finset.cons_induction_on s rfl fun a s has ih => by
     rw [prod_cons has, ih, single_mul_single, sum_cons has, prod_cons has]
 #align add_monoid_algebra.prod_single AddMonoidAlgebra.prod_single
+-/
 
 end
 
+#print AddMonoidAlgebra.mapDomain_algebraMap /-
 theorem mapDomain_algebraMap {A H F : Type _} [CommSemiring k] [Semiring A] [Algebra k A]
     [AddMonoid G] [AddMonoid H] [AddMonoidHomClass F G H] (f : F) (r : k) :
     mapDomain f (algebraMap k (AddMonoidAlgebra A G) r) = algebraMap k (AddMonoidAlgebra A H) r :=
   by simp only [Function.comp_apply, map_domain_single, AddMonoidAlgebra.coe_algebraMap, map_zero]
 #align add_monoid_algebra.map_domain_algebra_map AddMonoidAlgebra.mapDomain_algebraMap
+-/
 
 #print AddMonoidAlgebra.mapDomainNonUnitalAlgHom /-
 /-- If `f : G → H` is a homomorphism between two additive magmas, then `finsupp.map_domain f` is a
Diff
@@ -927,7 +927,7 @@ variable {ι : Type ui}
 attribute [local reducible] MonoidAlgebra
 
 theorem prod_single [CommSemiring k] [CommMonoid G] {s : Finset ι} {a : ι → G} {b : ι → k} :
-    (∏ i in s, single (a i) (b i)) = single (∏ i in s, a i) (∏ i in s, b i) :=
+    ∏ i in s, single (a i) (b i) = single (∏ i in s, a i) (∏ i in s, b i) :=
   Finset.cons_induction_on s rfl fun a s has ih => by
     rw [prod_cons has, ih, single_mul_single, prod_cons has, prod_cons has]
 #align monoid_algebra.prod_single MonoidAlgebra.prod_single
@@ -1823,7 +1823,7 @@ universe ui
 variable {ι : Type ui}
 
 theorem prod_single [CommSemiring k] [AddCommMonoid G] {s : Finset ι} {a : ι → G} {b : ι → k} :
-    (∏ i in s, single (a i) (b i)) = single (∑ i in s, a i) (∏ i in s, b i) :=
+    ∏ i in s, single (a i) (b i) = single (∑ i in s, a i) (∏ i in s, b i) :=
   Finset.cons_induction_on s rfl fun a s has ih => by
     rw [prod_cons has, ih, single_mul_single, sum_cons has, prod_cons has]
 #align add_monoid_algebra.prod_single AddMonoidAlgebra.prod_single
Diff
@@ -371,7 +371,6 @@ theorem mul_apply_antidiagonal [Mul G] (f g : MonoidAlgebra k G) (x : G) (s : Fi
           by_cases h1 : f p.1 = 0
           · rw [h1, MulZeroClass.zero_mul]
           · rw [hp hps h1, MulZeroClass.mul_zero]
-      
 #align monoid_algebra.mul_apply_antidiagonal MonoidAlgebra.mul_apply_antidiagonal
 
 @[simp]
@@ -473,7 +472,6 @@ theorem mul_single_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
         simp only [mul_apply, A, H]
       _ = if y ∈ f.support then f y * r else 0 := (f.support.sum_ite_eq' _ _)
       _ = f y * r := by split_ifs with h <;> simp at h  <;> simp [h]
-      
 #align monoid_algebra.mul_single_apply_aux MonoidAlgebra.mul_single_apply_aux
 
 theorem mul_single_one_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x : G) :
@@ -504,7 +502,6 @@ theorem single_mul_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
       _ = f.sum fun a b => ite (a = z) (r * b) 0 := by simp only [H]
       _ = if z ∈ f.support then r * f z else 0 := (f.support.sum_ite_eq' _ _)
       _ = _ := by split_ifs with h <;> simp at h  <;> simp [h]
-      
 #align monoid_algebra.single_mul_apply_aux MonoidAlgebra.single_mul_apply_aux
 
 theorem single_one_mul_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x : G) :
@@ -962,7 +959,6 @@ theorem mul_apply_left (f g : MonoidAlgebra k G) (x : G) :
     (f * g) x = Sum f fun a b => (single a b * g) x := by
       rw [← Finsupp.sum_apply, ← Finsupp.sum_mul, f.sum_single]
     _ = _ := by simp only [single_mul_apply, Finsupp.sum]
-    
 #align monoid_algebra.mul_apply_left MonoidAlgebra.mul_apply_left
 
 -- If we'd assumed `comm_semiring`, we could deduce this from `mul_apply_left`.
@@ -972,7 +968,6 @@ theorem mul_apply_right (f g : MonoidAlgebra k G) (x : G) :
     (f * g) x = Sum g fun a b => (f * single a b) x := by
       rw [← Finsupp.sum_apply, ← Finsupp.mul_sum, g.sum_single]
     _ = _ := by simp only [mul_single_apply, Finsupp.sum]
-    
 #align monoid_algebra.mul_apply_right MonoidAlgebra.mul_apply_right
 
 end
Diff
@@ -356,22 +356,22 @@ theorem mul_apply [DecidableEq G] [Mul G] (f g : MonoidAlgebra k G) (x : G) :
 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 in s, f p.1 * g p.2 := by
   classical exact
-      let F : G × G → k := fun p => if p.1 * p.2 = x then f p.1 * g p.2 else 0
-      calc
-        (f * g) x = ∑ a₁ in f.support, ∑ a₂ in g.support, F (a₁, a₂) := mul_apply f g x
-        _ = ∑ p in f.support ×ˢ g.support, F p := finset.sum_product.symm
-        _ = ∑ p in (f.support ×ˢ g.support).filterₓ fun p : G × G => p.1 * p.2 = x, f p.1 * g p.2 :=
-          (Finset.sum_filter _ _).symm
-        _ = ∑ p in s.filter fun p : G × G => p.1 ∈ f.support ∧ p.2 ∈ g.support, f p.1 * g p.2 :=
-          (sum_congr (by ext; simp only [mem_filter, mem_product, hs, and_comm']) fun _ _ => rfl)
-        _ = ∑ p in s, f p.1 * g p.2 :=
-          sum_subset (filter_subset _ _) fun p hps hp =>
-            by
-            simp only [mem_filter, mem_support_iff, not_and, Classical.not_not] at hp ⊢
-            by_cases h1 : f p.1 = 0
-            · rw [h1, MulZeroClass.zero_mul]
-            · rw [hp hps h1, MulZeroClass.mul_zero]
-        
+    let F : G × G → k := fun p => if p.1 * p.2 = x then f p.1 * g p.2 else 0
+    calc
+      (f * g) x = ∑ a₁ in f.support, ∑ a₂ in g.support, F (a₁, a₂) := mul_apply f g x
+      _ = ∑ p in f.support ×ˢ g.support, F p := finset.sum_product.symm
+      _ = ∑ p in (f.support ×ˢ g.support).filterₓ fun p : G × G => p.1 * p.2 = x, f p.1 * g p.2 :=
+        (Finset.sum_filter _ _).symm
+      _ = ∑ p in s.filter fun p : G × G => p.1 ∈ f.support ∧ p.2 ∈ g.support, f p.1 * g p.2 :=
+        (sum_congr (by ext; simp only [mem_filter, mem_product, hs, and_comm']) fun _ _ => rfl)
+      _ = ∑ p in s, f p.1 * g p.2 :=
+        sum_subset (filter_subset _ _) fun p hps hp =>
+          by
+          simp only [mem_filter, mem_support_iff, not_and, Classical.not_not] at hp ⊢
+          by_cases h1 : f p.1 = 0
+          · rw [h1, MulZeroClass.zero_mul]
+          · rw [hp hps h1, MulZeroClass.mul_zero]
+      
 #align monoid_algebra.mul_apply_antidiagonal MonoidAlgebra.mul_apply_antidiagonal
 
 @[simp]
@@ -463,17 +463,17 @@ def singleHom [MulOneClass G] : k × G →* MonoidAlgebra k G
 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 := by
   classical exact
-      have A :
-        ∀ a₁ b₁,
-          ((single x r).Sum fun a₂ b₂ => ite (a₁ * a₂ = z) (b₁ * b₂) 0) =
-            ite (a₁ * x = z) (b₁ * r) 0 :=
-        fun a₁ b₁ => sum_single_index <| by simp
-      calc
-        (f * single x r) z = Sum f fun a b => if a = y then b * r else 0 := by
-          simp only [mul_apply, A, H]
-        _ = if y ∈ f.support then f y * r else 0 := (f.support.sum_ite_eq' _ _)
-        _ = f y * r := by split_ifs with h <;> simp at h  <;> simp [h]
-        
+    have A :
+      ∀ a₁ b₁,
+        ((single x r).Sum fun a₂ b₂ => ite (a₁ * a₂ = z) (b₁ * b₂) 0) =
+          ite (a₁ * x = z) (b₁ * r) 0 :=
+      fun a₁ b₁ => sum_single_index <| by simp
+    calc
+      (f * single x r) z = Sum f fun a b => if a = y then b * r else 0 := by
+        simp only [mul_apply, A, H]
+      _ = if y ∈ f.support then f y * r else 0 := (f.support.sum_ite_eq' _ _)
+      _ = f y * r := by split_ifs with h <;> simp at h  <;> simp [h]
+      
 #align monoid_algebra.mul_single_apply_aux MonoidAlgebra.mul_single_apply_aux
 
 theorem mul_single_one_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x : G) :
@@ -484,27 +484,27 @@ theorem mul_single_one_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x
 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 * Finsupp.single g r : MonoidAlgebra k G) g' = 0 := by
   classical
-    rw [mul_apply, Finsupp.sum_comm, Finsupp.sum_single_index]
-    swap
-    · simp_rw [Finsupp.sum, MulZeroClass.mul_zero, if_t_t, Finset.sum_const_zero]
-    · apply Finset.sum_eq_zero
-      simp_rw [ite_eq_right_iff]
-      rintro g'' hg'' rfl
-      exfalso
-      exact h ⟨_, rfl⟩
+  rw [mul_apply, Finsupp.sum_comm, Finsupp.sum_single_index]
+  swap
+  · simp_rw [Finsupp.sum, MulZeroClass.mul_zero, if_t_t, Finset.sum_const_zero]
+  · apply Finset.sum_eq_zero
+    simp_rw [ite_eq_right_iff]
+    rintro g'' hg'' rfl
+    exfalso
+    exact h ⟨_, rfl⟩
 #align monoid_algebra.mul_single_apply_of_not_exists_mul MonoidAlgebra.mul_single_apply_of_not_exists_mul
 
 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 := by
   classical exact
-      have : (f.sum fun a b => ite (x * a = y) (0 * b) 0) = 0 := by simp
-      calc
-        (single x r * f) y = Sum f fun a b => ite (x * a = y) (r * b) 0 :=
-          (mul_apply _ _ _).trans <| sum_single_index this
-        _ = f.sum fun a b => ite (a = z) (r * b) 0 := by simp only [H]
-        _ = if z ∈ f.support then r * f z else 0 := (f.support.sum_ite_eq' _ _)
-        _ = _ := by split_ifs with h <;> simp at h  <;> simp [h]
-        
+    have : (f.sum fun a b => ite (x * a = y) (0 * b) 0) = 0 := by simp
+    calc
+      (single x r * f) y = Sum f fun a b => ite (x * a = y) (r * b) 0 :=
+        (mul_apply _ _ _).trans <| sum_single_index this
+      _ = f.sum fun a b => ite (a = z) (r * b) 0 := by simp only [H]
+      _ = if z ∈ f.support then r * f z else 0 := (f.support.sum_ite_eq' _ _)
+      _ = _ := by split_ifs with h <;> simp at h  <;> simp [h]
+      
 #align monoid_algebra.single_mul_apply_aux MonoidAlgebra.single_mul_apply_aux
 
 theorem single_one_mul_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x : G) :
@@ -515,14 +515,14 @@ theorem single_one_mul_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x
 theorem single_mul_apply_of_not_exists_mul [Mul G] (r : k) {g g' : G} (x : MonoidAlgebra k G)
     (h : ¬∃ d, g' = g * d) : (Finsupp.single g r * x : MonoidAlgebra k G) g' = 0 := by
   classical
-    rw [mul_apply, Finsupp.sum_single_index]
-    swap
-    · simp_rw [Finsupp.sum, MulZeroClass.zero_mul, if_t_t, Finset.sum_const_zero]
-    · apply Finset.sum_eq_zero
-      simp_rw [ite_eq_right_iff]
-      rintro g'' hg'' rfl
-      exfalso
-      exact h ⟨_, rfl⟩
+  rw [mul_apply, Finsupp.sum_single_index]
+  swap
+  · simp_rw [Finsupp.sum, MulZeroClass.zero_mul, if_t_t, Finset.sum_const_zero]
+  · apply Finset.sum_eq_zero
+    simp_rw [ite_eq_right_iff]
+    rintro g'' hg'' rfl
+    exfalso
+    exact h ⟨_, rfl⟩
 #align monoid_algebra.single_mul_apply_of_not_exists_mul MonoidAlgebra.single_mul_apply_of_not_exists_mul
 
 theorem liftNC_smul [MulOneClass G] {R : Type _} [Semiring R] (f : k →+* R) (g : G →* R) (c : k)
@@ -549,8 +549,8 @@ instance isScalarTower_self [IsScalarTower R k k] :
   ⟨fun t a b => by
     ext m
     classical simp only [mul_apply, Finsupp.smul_sum, smul_ite, smul_mul_assoc, sum_smul_index',
-        MulZeroClass.zero_mul, if_t_t, imp_true_iff, eq_self_iff_true, sum_zero, coe_smul,
-        smul_eq_mul, Pi.smul_apply, smul_zero]⟩
+      MulZeroClass.zero_mul, if_t_t, imp_true_iff, eq_self_iff_true, sum_zero, coe_smul,
+      smul_eq_mul, Pi.smul_apply, smul_zero]⟩
 #align monoid_algebra.is_scalar_tower_self MonoidAlgebra.isScalarTower_self
 
 /-- Note that if `k` is a `comm_semiring` then we have `smul_comm_class k k k` and so we can take
@@ -560,10 +560,10 @@ instance sMulCommClass_self [SMulCommClass R k k] :
     SMulCommClass R (MonoidAlgebra k G) (MonoidAlgebra k G) :=
   ⟨fun t a b => by
     classical
-      ext m
-      simp only [mul_apply, Finsupp.sum, Finset.smul_sum, smul_ite, mul_smul_comm, sum_smul_index',
-        imp_true_iff, eq_self_iff_true, coe_smul, ite_eq_right_iff, smul_eq_mul, Pi.smul_apply,
-        MulZeroClass.mul_zero, smul_zero]⟩
+    ext m
+    simp only [mul_apply, Finsupp.sum, Finset.smul_sum, smul_ite, mul_smul_comm, sum_smul_index',
+      imp_true_iff, eq_self_iff_true, coe_smul, ite_eq_right_iff, smul_eq_mul, Pi.smul_apply,
+      MulZeroClass.mul_zero, smul_zero]⟩
 #align monoid_algebra.smul_comm_class_self MonoidAlgebra.sMulCommClass_self
 
 instance sMulCommClass_symm_self [SMulCommClass k R k] :
Diff
@@ -76,7 +76,8 @@ It is the type of finite formal `k`-linear combinations of terms of `G`,
 endowed with the convolution product.
 -/
 def MonoidAlgebra : Type max u₁ u₂ :=
-  G →₀ k deriving Inhabited, AddCommMonoid
+  G →₀ k
+deriving Inhabited, AddCommMonoid
 #align monoid_algebra MonoidAlgebra
 -/
 
@@ -366,7 +367,7 @@ theorem mul_apply_antidiagonal [Mul G] (f g : MonoidAlgebra k G) (x : G) (s : Fi
         _ = ∑ p in s, f p.1 * g p.2 :=
           sum_subset (filter_subset _ _) fun p hps hp =>
             by
-            simp only [mem_filter, mem_support_iff, not_and, Classical.not_not] at hp⊢
+            simp only [mem_filter, mem_support_iff, not_and, Classical.not_not] at hp ⊢
             by_cases h1 : f p.1 = 0
             · rw [h1, MulZeroClass.zero_mul]
             · rw [hp hps h1, MulZeroClass.mul_zero]
@@ -471,7 +472,7 @@ theorem mul_single_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
         (f * single x r) z = Sum f fun a b => if a = y then b * r else 0 := by
           simp only [mul_apply, A, H]
         _ = if y ∈ f.support then f y * r else 0 := (f.support.sum_ite_eq' _ _)
-        _ = f y * r := by split_ifs with h <;> simp at h <;> simp [h]
+        _ = f y * r := by split_ifs with h <;> simp at h  <;> simp [h]
         
 #align monoid_algebra.mul_single_apply_aux MonoidAlgebra.mul_single_apply_aux
 
@@ -502,7 +503,7 @@ theorem single_mul_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
           (mul_apply _ _ _).trans <| sum_single_index this
         _ = f.sum fun a b => ite (a = z) (r * b) 0 := by simp only [H]
         _ = if z ∈ f.support then r * f z else 0 := (f.support.sum_ite_eq' _ _)
-        _ = _ := by split_ifs with h <;> simp at h <;> simp [h]
+        _ = _ := by split_ifs with h <;> simp at h  <;> simp [h]
         
 #align monoid_algebra.single_mul_apply_aux MonoidAlgebra.single_mul_apply_aux
 
@@ -605,8 +606,8 @@ def liftMagma [Module k A] [IsScalarTower k A A] [SMulCommClass k A A] :
         · intro m; exact zero_smul k (f m)
       map_mul' := fun a₁ a₂ => by
         let g : G → k → A := fun m t => t • f m
-        have h₁ : ∀ m, g m 0 = 0 := by intros ; exact zero_smul k (f m)
-        have h₂ : ∀ (m) (t₁ t₂ : k), g m (t₁ + t₂) = g m t₁ + g m t₂ := by intros ; rw [← add_smul]
+        have h₁ : ∀ m, g m 0 = 0 := by intros; exact zero_smul k (f m)
+        have h₂ : ∀ (m) (t₁ t₂ : k), g m (t₁ + t₂) = g m t₁ + g m t₂ := by intros; rw [← add_smul]
         simp_rw [Finsupp.mul_sum, Finsupp.sum_mul, smul_mul_smul, ← f.map_mul, mul_def,
           sum_comm a₂ a₁, sum_sum_index h₁ h₂, sum_single_index (h₁ _)] }
   invFun F := F.toMulHom.comp (ofMagma k G)
@@ -1052,7 +1053,8 @@ It is the type of finite formal `k`-linear combinations of terms of `G`,
 endowed with the convolution product.
 -/
 def AddMonoidAlgebra :=
-  G →₀ k deriving Inhabited, AddCommMonoid
+  G →₀ k
+deriving Inhabited, AddCommMonoid
 #align add_monoid_algebra AddMonoidAlgebra
 -/
 
@@ -1120,8 +1122,8 @@ instance : NonUnitalNonAssocSemiring (AddMonoidAlgebra k G) :=
     zero_mul := fun f => by simp only [mul_def, sum_zero_index]
     mul_zero := fun f => by simp only [mul_def, sum_zero_index, sum_zero]
     nsmul := fun n f => n • f
-    nsmul_zero := by intros ; ext; simp [-nsmul_eq_mul, add_smul]
-    nsmul_succ := by intros ; ext; simp [-nsmul_eq_mul, Nat.succ_eq_one_add, add_smul] }
+    nsmul_zero := by intros; ext; simp [-nsmul_eq_mul, add_smul]
+    nsmul_succ := by intros; ext; simp [-nsmul_eq_mul, Nat.succ_eq_one_add, add_smul] }
 
 variable [Semiring R]
 
Diff
@@ -749,14 +749,12 @@ def liftNCAlgHom (f : A →ₐ[k] B) (g : G →* B) (h_comm : ∀ x y, Commute (
     commutes' := by simp [lift_nc_ring_hom] }
 #align monoid_algebra.lift_nc_alg_hom MonoidAlgebra.liftNCAlgHom
 
-#print MonoidAlgebra.algHom_ext /-
 /-- A `k`-algebra homomorphism from `monoid_algebra k G` is uniquely defined by its
 values on the functions `single a 1`. -/
 theorem algHom_ext ⦃φ₁ φ₂ : MonoidAlgebra k G →ₐ[k] A⦄
     (h : ∀ x, φ₁ (single x 1) = φ₂ (single x 1)) : φ₁ = φ₂ :=
   AlgHom.toLinearMap_injective <| Finsupp.lhom_ext' fun a => LinearMap.ext_ring (h a)
 #align monoid_algebra.alg_hom_ext MonoidAlgebra.algHom_ext
--/
 
 /-- See note [partially-applied ext lemmas]. -/
 @[ext]
@@ -783,24 +781,18 @@ def lift : (G →* A) ≃ (MonoidAlgebra k G →ₐ[k] A)
 
 variable {k G A}
 
-#print 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 :=
   rfl
 #align monoid_algebra.lift_apply' MonoidAlgebra.lift_apply'
--/
 
-#print 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 := by simp only [lift_apply', Algebra.smul_def]
 #align monoid_algebra.lift_apply MonoidAlgebra.lift_apply
--/
 
-#print MonoidAlgebra.lift_def /-
 theorem lift_def (F : G →* A) : ⇑(lift k G A F) = liftNC ((algebraMap k A : k →+* A) : k →+ A) F :=
   rfl
 #align monoid_algebra.lift_def MonoidAlgebra.lift_def
--/
 
 @[simp]
 theorem lift_symm_apply (F : MonoidAlgebra k G →ₐ[k] A) (x : G) :
@@ -808,18 +800,14 @@ theorem lift_symm_apply (F : MonoidAlgebra k G →ₐ[k] A) (x : G) :
   rfl
 #align monoid_algebra.lift_symm_apply MonoidAlgebra.lift_symm_apply
 
-#print MonoidAlgebra.lift_of /-
 theorem lift_of (F : G →* A) (x) : lift k G A F (of k G x) = F x := by
   rw [of_apply, ← lift_symm_apply, Equiv.symm_apply_apply]
 #align monoid_algebra.lift_of MonoidAlgebra.lift_of
--/
 
-#print MonoidAlgebra.lift_single /-
 @[simp]
 theorem lift_single (F : G →* A) (a b) : lift k G A F (single a b) = b • F a := by
-  rw [lift_def, lift_nc_single, Algebra.smul_def, [anonymous]]
+  rw [lift_def, lift_nc_single, Algebra.smul_def, RingHom.coe_addMonoidHom]
 #align monoid_algebra.lift_single MonoidAlgebra.lift_single
--/
 
 #print MonoidAlgebra.lift_unique' /-
 theorem lift_unique' (F : MonoidAlgebra k G →ₐ[k] A) :
@@ -828,7 +816,6 @@ theorem lift_unique' (F : MonoidAlgebra k G →ₐ[k] A) :
 #align monoid_algebra.lift_unique' MonoidAlgebra.lift_unique'
 -/
 
-#print MonoidAlgebra.lift_unique /-
 /-- Decomposition of a `k`-algebra homomorphism from `monoid_algebra k G` by
 its values on `F (single a 1)`. -/
 theorem lift_unique (F : MonoidAlgebra k G →ₐ[k] A) (f : MonoidAlgebra k G) :
@@ -837,7 +824,6 @@ theorem lift_unique (F : MonoidAlgebra k G →ₐ[k] A) (f : MonoidAlgebra k G)
     rw [lift_unique' F]
     simp [lift_apply]
 #align monoid_algebra.lift_unique MonoidAlgebra.lift_unique
--/
 
 #print MonoidAlgebra.mapDomainNonUnitalAlgHom /-
 /-- If `f : G → H` is a homomorphism between two magmas, then
@@ -1005,7 +991,7 @@ protected noncomputable def opRingEquiv [Monoid G] :
     opAddEquiv.symm.trans <|
       (Finsupp.mapRange.addEquiv (opAddEquiv : k ≃+ kᵐᵒᵖ)).trans <| Finsupp.domCongr opEquiv with
     map_mul' := by
-      dsimp only [[anonymous], ← AddEquiv.coe_toAddMonoidHom]
+      dsimp only [AddEquiv.toFun_eq_coe, ← AddEquiv.coe_toAddMonoidHom]
       rw [AddMonoidHom.map_mul_iff]
       ext (i₁ r₁ i₂ r₂) : 6
       simp }
@@ -1672,7 +1658,7 @@ protected noncomputable def opRingEquiv [AddCommMonoid G] :
     MulOpposite.opAddEquiv.symm.trans
       (Finsupp.mapRange.addEquiv (MulOpposite.opAddEquiv : k ≃+ kᵐᵒᵖ)) with
     map_mul' := by
-      dsimp only [[anonymous], ← AddEquiv.coe_toAddMonoidHom]
+      dsimp only [AddEquiv.toFun_eq_coe, ← AddEquiv.coe_toAddMonoidHom]
       rw [AddMonoidHom.map_mul_iff]
       ext (i r i' r') : 6
       dsimp
@@ -1742,14 +1728,12 @@ def liftNCAlgHom (f : A →ₐ[k] B) (g : Multiplicative G →* B) (h_comm : ∀
     commutes' := by simp [lift_nc_ring_hom] }
 #align add_monoid_algebra.lift_nc_alg_hom AddMonoidAlgebra.liftNCAlgHom
 
-#print AddMonoidAlgebra.algHom_ext /-
 /-- A `k`-algebra homomorphism from `monoid_algebra k G` is uniquely defined by its
 values on the functions `single a 1`. -/
 theorem algHom_ext ⦃φ₁ φ₂ : AddMonoidAlgebra k G →ₐ[k] A⦄
     (h : ∀ x, φ₁ (single x 1) = φ₂ (single x 1)) : φ₁ = φ₂ :=
   @MonoidAlgebra.algHom_ext k (Multiplicative G) _ _ _ _ _ _ _ h
 #align add_monoid_algebra.alg_hom_ext AddMonoidAlgebra.algHom_ext
--/
 
 /-- See note [partially-applied ext lemmas]. -/
 @[ext]
@@ -1779,26 +1763,20 @@ def lift : (Multiplicative G →* A) ≃ (AddMonoidAlgebra k G →ₐ[k] A) :=
 
 variable {k G A}
 
-#print AddMonoidAlgebra.lift_apply' /-
 theorem lift_apply' (F : Multiplicative G →* A) (f : MonoidAlgebra k G) :
     lift k G A F f = f.Sum fun a b => algebraMap k A b * F (Multiplicative.ofAdd a) :=
   rfl
 #align add_monoid_algebra.lift_apply' AddMonoidAlgebra.lift_apply'
--/
 
-#print AddMonoidAlgebra.lift_apply /-
 theorem lift_apply (F : Multiplicative G →* A) (f : MonoidAlgebra k G) :
     lift k G A F f = f.Sum fun a b => b • F (Multiplicative.ofAdd a) := by
   simp only [lift_apply', Algebra.smul_def]
 #align add_monoid_algebra.lift_apply AddMonoidAlgebra.lift_apply
--/
 
-#print AddMonoidAlgebra.lift_def /-
 theorem lift_def (F : Multiplicative G →* A) :
     ⇑(lift k G A F) = liftNC ((algebraMap k A : k →+* A) : k →+ A) F :=
   rfl
 #align add_monoid_algebra.lift_def AddMonoidAlgebra.lift_def
--/
 
 @[simp]
 theorem lift_symm_apply (F : AddMonoidAlgebra k G →ₐ[k] A) (x : Multiplicative G) :
@@ -1806,19 +1784,15 @@ theorem lift_symm_apply (F : AddMonoidAlgebra k G →ₐ[k] A) (x : Multiplicati
   rfl
 #align add_monoid_algebra.lift_symm_apply AddMonoidAlgebra.lift_symm_apply
 
-#print AddMonoidAlgebra.lift_of /-
 theorem lift_of (F : Multiplicative G →* A) (x : Multiplicative G) :
     lift k G A F (of k G x) = F x := by rw [of_apply, ← lift_symm_apply, Equiv.symm_apply_apply]
 #align add_monoid_algebra.lift_of AddMonoidAlgebra.lift_of
--/
 
-#print AddMonoidAlgebra.lift_single /-
 @[simp]
 theorem lift_single (F : Multiplicative G →* A) (a b) :
     lift k G A F (single a b) = b • F (Multiplicative.ofAdd a) := by
-  rw [lift_def, lift_nc_single, Algebra.smul_def, [anonymous]]
+  rw [lift_def, lift_nc_single, Algebra.smul_def, RingHom.coe_addMonoidHom]
 #align add_monoid_algebra.lift_single AddMonoidAlgebra.lift_single
--/
 
 #print AddMonoidAlgebra.lift_unique' /-
 theorem lift_unique' (F : AddMonoidAlgebra k G →ₐ[k] A) :
@@ -1827,7 +1801,6 @@ theorem lift_unique' (F : AddMonoidAlgebra k G →ₐ[k] A) :
 #align add_monoid_algebra.lift_unique' AddMonoidAlgebra.lift_unique'
 -/
 
-#print AddMonoidAlgebra.lift_unique /-
 /-- Decomposition of a `k`-algebra homomorphism from `monoid_algebra k G` by
 its values on `F (single a 1)`. -/
 theorem lift_unique (F : AddMonoidAlgebra k G →ₐ[k] A) (f : MonoidAlgebra k G) :
@@ -1836,14 +1809,11 @@ theorem lift_unique (F : AddMonoidAlgebra k G →ₐ[k] A) (f : MonoidAlgebra k
     rw [lift_unique' F]
     simp [lift_apply]
 #align add_monoid_algebra.lift_unique AddMonoidAlgebra.lift_unique
--/
 
-#print AddMonoidAlgebra.algHom_ext_iff /-
 theorem algHom_ext_iff {φ₁ φ₂ : AddMonoidAlgebra k G →ₐ[k] A} :
     (∀ x, φ₁ (Finsupp.single x 1) = φ₂ (Finsupp.single x 1)) ↔ φ₁ = φ₂ :=
   ⟨fun h => algHom_ext h, by rintro rfl _ <;> rfl⟩
 #align add_monoid_algebra.alg_hom_ext_iff AddMonoidAlgebra.algHom_ext_iff
--/
 
 end lift
 
Diff
@@ -55,7 +55,7 @@ Similarly, I attempted to just define
 
 noncomputable section
 
-open BigOperators
+open scoped BigOperators
 
 open Finset Finsupp
 
Diff
@@ -93,12 +93,6 @@ section
 
 variable [Semiring k] [NonUnitalNonAssocSemiring R]
 
-/- warning: monoid_algebra.lift_nc -> MonoidAlgebra.liftNC is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : NonUnitalNonAssocSemiring.{u3} R], (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) -> (G -> R) -> (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : NonUnitalNonAssocSemiring.{u3} R], (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) -> (G -> R) -> (AddMonoidHom.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u1, u2} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2))))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc MonoidAlgebra.liftNCₓ'. -/
 /-- A non-commutative version of `monoid_algebra.lift`: given a additive homomorphism `f : k →+ R`
 and a homomorphism `g : G → R`, returns the additive homomorphism from
 `monoid_algebra k G` such that `lift_nc f g (single a b) = f b * g a`. If `f` is a ring homomorphism
@@ -109,9 +103,6 @@ def liftNC (f : k →+ R) (g : G → R) : MonoidAlgebra k G →+ R :=
   liftAddHom fun x : G => (AddMonoidHom.mulRight (g x)).comp f
 #align monoid_algebra.lift_nc MonoidAlgebra.liftNC
 
-/- warning: monoid_algebra.lift_nc_single -> MonoidAlgebra.liftNC_single is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_single 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 :=
@@ -130,12 +121,6 @@ variable [Semiring k] [Mul G]
 instance : Mul (MonoidAlgebra k G) :=
   ⟨fun f g => f.Sum fun a₁ b₁ => g.Sum fun a₂ b₂ => single (a₁ * a₂) (b₁ * b₂)⟩
 
-/- warning: monoid_algebra.mul_def -> MonoidAlgebra.mul_def is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] {f : MonoidAlgebra.{u1, u2} k G _inst_1} {g : MonoidAlgebra.{u1, u2} k G _inst_1}, Eq.{succ (max u1 u2)} (MonoidAlgebra.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) f g) (Finsupp.sum.{u2, u1, max u1 u2} G k (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1) f (fun (a₁ : G) (b₁ : k) => Finsupp.sum.{u2, u1, max u1 u2} G k (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1) g (fun (a₂ : G) (b₂ : k) => Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) a₁ a₂) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) b₁ b₂))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] {f : MonoidAlgebra.{u1, u2} k G _inst_1} {g : MonoidAlgebra.{u1, u2} k G _inst_1}, Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) f g) (Finsupp.sum.{u2, u1, max u2 u1} G k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.addCommMonoid.{u1, u2} k G _inst_1) f (fun (a₁ : G) (b₁ : k) => Finsupp.sum.{u2, u1, max u2 u1} G k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.addCommMonoid.{u1, u2} k G _inst_1) g (fun (a₂ : G) (b₂ : k) => MonoidAlgebra.single.{u1, u2} k G _inst_1 (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) a₁ a₂) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) b₁ b₂))))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.mul_def 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₂) :=
   rfl
@@ -159,9 +144,6 @@ instance : NonUnitalNonAssocSemiring (MonoidAlgebra k G) :=
 
 variable [Semiring R]
 
-/- warning: monoid_algebra.lift_nc_mul -> MonoidAlgebra.liftNC_mul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_mul MonoidAlgebra.liftNC_mulₓ'. -/
 theorem liftNC_mul {g_hom : Type _} [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 :=
@@ -200,19 +182,10 @@ variable [NonAssocSemiring R] [Semiring k] [One G]
 instance : One (MonoidAlgebra k G) :=
   ⟨single 1 1⟩
 
-/- warning: monoid_algebra.one_def -> MonoidAlgebra.one_def is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_2 : Semiring.{u1} k] [_inst_3 : One.{u2} G], Eq.{succ (max u1 u2)} (MonoidAlgebra.{u1, u2} k G _inst_2) (OfNat.ofNat.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) 1 (OfNat.mk.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) 1 (One.one.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.one.{u1, u2} k G _inst_2 _inst_3)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G _inst_3))) (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2))))))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_2 : Semiring.{u1} k] [_inst_3 : One.{u2} G], Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G _inst_2) (OfNat.ofNat.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) 1 (One.toOfNat1.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.one.{u1, u2} k G _inst_2 _inst_3))) (MonoidAlgebra.single.{u1, u2} k G _inst_2 (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G _inst_3)) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_2))))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.one_def MonoidAlgebra.one_defₓ'. -/
 theorem one_def : (1 : MonoidAlgebra k G) = single 1 1 :=
   rfl
 #align monoid_algebra.one_def MonoidAlgebra.one_def
 
-/- warning: monoid_algebra.lift_nc_one -> MonoidAlgebra.liftNC_one is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_one MonoidAlgebra.liftNC_oneₓ'. -/
 @[simp]
 theorem liftNC_one {g_hom : Type _} [OneHomClass g_hom G R] (f : k →+* R) (g : g_hom) :
     liftNC (f : k →+ R) g 1 = 1 := by simp [one_def]
@@ -240,12 +213,6 @@ instance : NonAssocSemiring (MonoidAlgebra k G) :=
       simp only [mul_def, one_def, sum_single_index, MulZeroClass.mul_zero, single_zero, sum_zero,
         add_zero, mul_one, sum_single] }
 
-/- warning: monoid_algebra.nat_cast_def -> MonoidAlgebra.nat_cast_def is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (n : Nat), Eq.{succ (max u1 u2)} (MonoidAlgebra.{u1, u2} k G _inst_1) ((fun (a : Type) (b : Type.{max u1 u2}) [self : HasLiftT.{1, succ (max u1 u2)} a b] => self.0) Nat (MonoidAlgebra.{u1, u2} k G _inst_1) (HasLiftT.mk.{1, succ (max u1 u2)} Nat (MonoidAlgebra.{u1, u2} k G _inst_1) (CoeTCₓ.coe.{1, succ (max u1 u2)} Nat (MonoidAlgebra.{u1, u2} k G _inst_1) (Nat.castCoe.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidWithOne.toNatCast.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toAddCommMonoidWithOne.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))))))) n) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat k (HasLiftT.mk.{1, succ u1} Nat k (CoeTCₓ.coe.{1, succ u1} Nat k (Nat.castCoe.{u1} k (AddMonoidWithOne.toNatCast.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) n))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (n : Nat), Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G _inst_1) (Nat.cast.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toNatCast.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)) n) (MonoidAlgebra.single.{u1, u2} k G _inst_1 (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G (MulOneClass.toOne.{u2} G _inst_2))) (Nat.cast.{u1} k (Semiring.toNatCast.{u1} k _inst_1) n))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.nat_cast_def MonoidAlgebra.nat_cast_defₓ'. -/
 theorem nat_cast_def (n : ℕ) : (n : MonoidAlgebra k G) = single 1 n :=
   rfl
 #align monoid_algebra.nat_cast_def MonoidAlgebra.nat_cast_def
@@ -269,12 +236,6 @@ instance : Semiring (MonoidAlgebra k G) :=
 
 variable [Semiring R]
 
-/- warning: monoid_algebra.lift_nc_ring_hom -> MonoidAlgebra.liftNCRingHom is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : G), Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f x) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => G -> R) (MonoidHom.hasCoeToFun.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g y)) -> (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : G), Commute.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) x) (NonUnitalNonAssocSemiring.toMul.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) x) (Semiring.toNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) x) _inst_3))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.instRingHomClassRingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) f x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => R) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G R (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g y)) -> (RingHom.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_ring_hom MonoidAlgebra.liftNCRingHomₓ'. -/
 /-- `lift_nc` as a `ring_hom`, for when `f x` and `g y` commute -/
 def liftNCRingHom (f : k →+* R) (g : G →* R) (h_comm : ∀ x y, Commute (f x) (g y)) :
     MonoidAlgebra k G →+* R :=
@@ -323,12 +284,6 @@ instance [Ring k] [MulOneClass G] : NonAssocRing (MonoidAlgebra k G) :=
     intCast_ofNat := fun n => by simpa
     intCast_negSucc := fun n => by simpa }
 
-/- warning: monoid_algebra.int_cast_def -> MonoidAlgebra.int_cast_def is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Ring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (z : Int), Eq.{succ (max u1 u2)} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) ((fun (a : Type) (b : Type.{max u1 u2}) [self : HasLiftT.{1, succ (max u1 u2)} a b] => self.0) Int (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (HasLiftT.mk.{1, succ (max u1 u2)} Int (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (CoeTCₓ.coe.{1, succ (max u1 u2)} Int (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (Int.castCoe.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (AddGroupWithOne.toHasIntCast.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (NonAssocRing.toAddCommGroupWithOne.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocRing.{u1, u2} k G _inst_1 _inst_2))))))) z) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (Ring.toSemiring.{u1} k _inst_1))))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int k (HasLiftT.mk.{1, succ u1} Int k (CoeTCₓ.coe.{1, succ u1} Int k (Int.castCoe.{u1} k (AddGroupWithOne.toHasIntCast.{u1} k (AddCommGroupWithOne.toAddGroupWithOne.{u1} k (Ring.toAddCommGroupWithOne.{u1} k _inst_1)))))) z))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Ring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (z : Int), Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (Int.cast.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (NonAssocRing.toIntCast.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocRing.{u1, u2} k G _inst_1 _inst_2)) z) (MonoidAlgebra.single.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1) (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G (MulOneClass.toOne.{u2} G _inst_2))) (Int.cast.{u1} k (Ring.toIntCast.{u1} k _inst_1) z))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.int_cast_def MonoidAlgebra.int_cast_defₓ'. -/
 theorem int_cast_def [Ring k] [MulOneClass G] (z : ℤ) : (z : MonoidAlgebra k G) = single 1 z :=
   rfl
 #align monoid_algebra.int_cast_def MonoidAlgebra.int_cast_def
@@ -388,12 +343,6 @@ variable [Semiring k]
 
 attribute [local reducible] MonoidAlgebra
 
-/- warning: monoid_algebra.mul_apply -> MonoidAlgebra.mul_apply is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DecidableEq.{succ u2} G] [_inst_3 : Mul.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1) (x : G), Eq.{succ u1} k (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_3)) f g) x) (Finsupp.sum.{u2, u1, u1} G k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) f (fun (a₁ : G) (b₁ : k) => Finsupp.sum.{u2, u1, u1} G k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) g (fun (a₂ : G) (b₂ : k) => ite.{succ u1} k (Eq.{succ u2} G (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_3) a₁ a₂) x) (_inst_2 (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_3) a₁ a₂) x) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) b₁ b₂) (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DecidableEq.{succ u2} G] [_inst_3 : Mul.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_3)) f g) x) (Finsupp.sum.{u2, u1, u1} G k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) f (fun (a₁ : G) (b₁ : k) => Finsupp.sum.{u2, u1, u1} G k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) g (fun (a₂ : G) (b₂ : k) => ite.{succ u1} k (Eq.{succ u2} G (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_3) a₁ a₂) x) (_inst_2 (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_3) a₁ a₂) x) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) b₁ b₂) (OfNat.ofNat.{u1} k 0 (Zero.toOfNat0.{u1} k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))))))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.mul_apply 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 :=
   by
@@ -401,12 +350,6 @@ theorem mul_apply [DecidableEq G] [Mul G] (f g : MonoidAlgebra k G) (x : G) :
   simp only [Finsupp.sum_apply, single_apply]
 #align monoid_algebra.mul_apply MonoidAlgebra.mul_apply
 
-/- warning: monoid_algebra.mul_apply_antidiagonal -> MonoidAlgebra.mul_apply_antidiagonal is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1) (x : G) (s : Finset.{u2} (Prod.{u2, u2} G G)), (forall {p : Prod.{u2, u2} G G}, Iff (Membership.Mem.{u2, u2} (Prod.{u2, u2} G G) (Finset.{u2} (Prod.{u2, u2} G G)) (Finset.hasMem.{u2} (Prod.{u2, u2} G G)) p s) (Eq.{succ u2} G (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) (Prod.fst.{u2, u2} G G p) (Prod.snd.{u2, u2} G G p)) x)) -> (Eq.{succ u1} k (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) f g) x) (Finset.sum.{u1, u2} k (Prod.{u2, u2} G G) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) s (fun (p : Prod.{u2, u2} G G) => HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f (Prod.fst.{u2, u2} G G p)) (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) g (Prod.snd.{u2, u2} G G p)))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1) (x : G) (s : Finset.{u2} (Prod.{u2, u2} G G)), (forall {p : Prod.{u2, u2} G G}, Iff (Membership.mem.{u2, u2} (Prod.{u2, u2} G G) (Finset.{u2} (Prod.{u2, u2} G G)) (Finset.instMembershipFinset.{u2} (Prod.{u2, u2} G G)) p s) (Eq.{succ u2} G (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) (Prod.fst.{u2, u2} G G p) (Prod.snd.{u2, u2} G G p)) x)) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) f g) x) (Finset.sum.{u1, u2} k (Prod.{u2, u2} G G) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) s (fun (p : Prod.{u2, u2} G G) => HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.snd.{u2, u2} G G p)) ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) (instHMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f (Prod.fst.{u2, u2} G G p)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) g (Prod.snd.{u2, u2} G G p)))))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.mul_apply_antidiagonal MonoidAlgebra.mul_apply_antidiagonalₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem mul_apply_antidiagonal [Mul G] (f g : MonoidAlgebra k G) (x : G) (s : Finset (G × G))
@@ -430,12 +373,6 @@ theorem mul_apply_antidiagonal [Mul G] (f g : MonoidAlgebra k G) (x : G) (s : Fi
         
 #align monoid_algebra.mul_apply_antidiagonal MonoidAlgebra.mul_apply_antidiagonal
 
-/- warning: monoid_algebra.single_mul_single -> MonoidAlgebra.single_mul_single is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] {a₁ : G} {a₂ : G} {b₁ : k} {b₂ : k}, Eq.{succ (max u2 u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (instHMul.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a₁ b₁) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a₂ b₂)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) a₁ a₂) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) b₁ b₂))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] {a₁ : G} {a₂ : G} {b₁ : k} {b₂ : k}, Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) (MonoidAlgebra.single.{u1, u2} k G _inst_1 a₁ b₁) (MonoidAlgebra.single.{u1, u2} k G _inst_1 a₂ b₂)) (MonoidAlgebra.single.{u1, u2} k G _inst_1 (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) a₁ a₂) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) b₁ b₂))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_mul_single MonoidAlgebra.single_mul_singleₓ'. -/
 @[simp]
 theorem single_mul_single [Mul G] {a₁ a₂ : G} {b₁ b₂ : k} :
     (single a₁ b₁ : MonoidAlgebra k G) * single a₂ b₂ = single (a₁ * a₂) (b₁ * b₂) :=
@@ -443,12 +380,6 @@ theorem single_mul_single [Mul G] {a₁ a₂ : G} {b₁ b₂ : k} :
     (sum_single_index (by rw [MulZeroClass.mul_zero, single_zero]))
 #align monoid_algebra.single_mul_single MonoidAlgebra.single_mul_single
 
-/- warning: monoid_algebra.single_pow -> MonoidAlgebra.single_pow is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] {a : G} {b : k} (n : Nat), Eq.{succ (max u2 u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) Nat (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (instHPow.{max u2 u1, 0} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) Nat (Monoid.Pow.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (MonoidWithZero.toMonoid.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (MonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a b) n) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (HPow.hPow.{u2, 0, u2} G Nat G (instHPow.{u2, 0} G Nat (Monoid.Pow.{u2} G _inst_2)) a n) (HPow.hPow.{u1, 0, u1} k Nat k (instHPow.{u1, 0} k Nat (Monoid.Pow.{u1} k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) b n))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] {a : G} {b : k} (n : Nat), Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G _inst_1) (HPow.hPow.{max u1 u2, 0, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) Nat (MonoidAlgebra.{u1, u2} k G _inst_1) (instHPow.{max u1 u2, 0} (MonoidAlgebra.{u1, u2} k G _inst_1) Nat (Monoid.Pow.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))))) (MonoidAlgebra.single.{u1, u2} k G _inst_1 a b) n) (MonoidAlgebra.single.{u1, u2} k G _inst_1 (HPow.hPow.{u2, 0, u2} G Nat G (instHPow.{u2, 0} G Nat (Monoid.Pow.{u2} G _inst_2)) a n) (HPow.hPow.{u1, 0, u1} k Nat k (instHPow.{u1, 0} k Nat (Monoid.Pow.{u1} k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) b n))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_pow MonoidAlgebra.single_powₓ'. -/
 @[simp]
 theorem single_pow [Monoid G] {a : G} {b : k} :
     ∀ n : ℕ, (single a b : MonoidAlgebra k G) ^ n = single (a ^ n) (b ^ n)
@@ -458,12 +389,6 @@ theorem single_pow [Monoid G] {a : G} {b : k} :
 
 section
 
-/- warning: monoid_algebra.map_domain_one -> MonoidAlgebra.mapDomain_one is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {α₂ : Type.{u3}} [_inst_2 : Semiring.{u2} β] [_inst_3 : One.{u1} α] [_inst_4 : One.{u3} α₂] {F : Type.{u4}} [_inst_5 : OneHomClass.{u4, u1, u3} F α α₂ _inst_3 _inst_4] (f : F), Eq.{max (succ u3) (succ u2)} (Finsupp.{u3, u2} α₂ β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))))))) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (OneHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) (OfNat.ofNat.{max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) 1 (OfNat.mk.{max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) 1 (One.one.{max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) (MonoidAlgebra.one.{u2, u1} β α _inst_2 _inst_3))))) (OfNat.ofNat.{max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) 1 (OfNat.mk.{max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) 1 (One.one.{max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (MonoidAlgebra.one.{u2, u3} β α₂ _inst_2 _inst_4))))
-but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : One.{u4} α] [_inst_4 : One.{u2} α₂] {F : Type.{u1}} [_inst_5 : OneHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1264 : α) => α₂) _x) (OneHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (OfNat.ofNat.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) 1 (One.toOfNat1.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.one.{u3, u4} β α _inst_2 _inst_3)))) (OfNat.ofNat.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) 1 (One.toOfNat1.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.one.{u3, u2} β α₂ _inst_2 _inst_4)))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.map_domain_one MonoidAlgebra.mapDomain_oneₓ'. -/
 /-- Like `finsupp.map_domain_zero`, but for the `1` we define in this file -/
 @[simp]
 theorem mapDomain_one {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [One α] [One α₂]
@@ -472,12 +397,6 @@ theorem mapDomain_one {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β]
   simp_rw [one_def, map_domain_single, map_one]
 #align monoid_algebra.map_domain_one MonoidAlgebra.mapDomain_one
 
-/- warning: monoid_algebra.map_domain_mul -> MonoidAlgebra.mapDomain_mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {α₂ : Type.{u3}} [_inst_2 : Semiring.{u2} β] [_inst_3 : Mul.{u1} α] [_inst_4 : Mul.{u3} α₂] {F : Type.{u4}} [_inst_5 : MulHomClass.{u4, u1, u3} F α α₂ _inst_3 _inst_4] (f : F) (x : MonoidAlgebra.{u2, u1} β α _inst_2) (y : MonoidAlgebra.{u2, u1} β α _inst_2), Eq.{max (succ u3) (succ u2)} (Finsupp.{u3, u2} α₂ β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))))))) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (MulHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) (MonoidAlgebra.{u2, u1} β α _inst_2) (MonoidAlgebra.{u2, u1} β α _inst_2) (instHMul.{max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) (MonoidAlgebra.mul.{u2, u1} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (instHMul.{max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (MonoidAlgebra.mul.{u2, u3} β α₂ _inst_2 _inst_4)) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (MulHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) x) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (MulHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) y))
-but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : Mul.{u4} α] [_inst_4 : Mul.{u2} α₂] {F : Type.{u1}} [_inst_5 : MulHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F) (x : MonoidAlgebra.{u3, u4} β α _inst_2) (y : MonoidAlgebra.{u3, u4} β α _inst_2), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (HMul.hMul.{max u4 u3, max u4 u3, max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.{u3, u4} β α _inst_2) (instHMul.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.mul.{u3, u4} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u3 u2, max u3 u2, max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (instHMul.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mul.{u3, u2} β α₂ _inst_2 _inst_4)) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) x) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) y))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.map_domain_mul MonoidAlgebra.mapDomain_mulₓ'. -/
 /-- Like `finsupp.map_domain_add`, but for the convolutive multiplication we define in this file -/
 theorem mapDomain_mul {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [Mul α] [Mul α₂]
     {F : Type _} [MulHomClass F α α₂] (f : F) (x y : MonoidAlgebra β α) :
@@ -520,31 +439,13 @@ def of [MulOneClass G] : G →* MonoidAlgebra k G :=
 
 end
 
-/- warning: monoid_algebra.smul_of -> MonoidAlgebra.smul_of is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (g : G) (r : k), Eq.{succ (max u1 u2)} (MonoidAlgebra.{u1, u2} k G _inst_1) (SMul.smul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) r (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => G -> (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) g)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) g r)
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (g : G) (r : k), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (instHSMul.{u1, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (SMulZeroClass.toSMul.{u1, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (MulZeroOneClass.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G _inst_2) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) g)) (MonoidAlgebra.single.{u1, u2} k G _inst_1 g r)
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.smul_of MonoidAlgebra.smul_ofₓ'. -/
 theorem smul_of [MulOneClass G] (g : G) (r : k) : r • of k G g = single g r := by simp
 #align monoid_algebra.smul_of MonoidAlgebra.smul_of
 
-/- warning: monoid_algebra.of_injective -> MonoidAlgebra.of_injective is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Nontrivial.{u1} k], Function.Injective.{succ u2, succ (max u1 u2)} G (MonoidAlgebra.{u1, u2} k G _inst_1) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => G -> (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Nontrivial.{u1} k], Function.Injective.{succ u2, max (succ u1) (succ u2)} G (MonoidAlgebra.{u1, u2} k G _inst_1) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G _inst_2) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.of_injective MonoidAlgebra.of_injectiveₓ'. -/
 theorem of_injective [MulOneClass G] [Nontrivial k] : Function.Injective (of k G) := fun a b h => by
   simpa using (single_eq_single_iff _ _ _ _).mp h
 #align monoid_algebra.of_injective MonoidAlgebra.of_injective
 
-/- warning: monoid_algebra.single_hom -> MonoidAlgebra.singleHom is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G], MonoidHom.{max u1 u2, max u1 u2} (Prod.{u1, u2} k G) (MonoidAlgebra.{u1, u2} k G _inst_1) (Prod.mulOneClass.{u1, u2} k G (MulZeroOneClass.toMulOneClass.{u1} k (NonAssocSemiring.toMulZeroOneClass.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G], MonoidHom.{max u2 u1, max u2 u1} (Prod.{u1, u2} k G) (MonoidAlgebra.{u1, u2} k G _inst_1) (Prod.instMulOneClassProd.{u1, u2} k G (MulZeroOneClass.toMulOneClass.{u1} k (NonAssocSemiring.toMulZeroOneClass.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_hom MonoidAlgebra.singleHomₓ'. -/
 /-- `finsupp.single` as a `monoid_hom` from the product type into the monoid algebra.
 
 Note the order of the elements of the product are reversed compared to the arguments of
@@ -558,12 +459,6 @@ def singleHom [MulOneClass G] : k × G →* MonoidAlgebra k G
   map_mul' a b := single_mul_single.symm
 #align monoid_algebra.single_hom MonoidAlgebra.singleHom
 
-/- warning: monoid_algebra.mul_single_apply_aux -> MonoidAlgebra.mul_single_apply_aux is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) {r : k} {x : G} {y : G} {z : G}, (forall (a : G), Iff (Eq.{succ u2} G (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) a x) z) (Eq.{succ u2} G a y)) -> (Eq.{succ u1} k (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r)) z) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f y) r))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) {r : k} {x : G} {y : G} {z : G}, (forall (a : G), Iff (Eq.{succ u2} G (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) a x) z) (Eq.{succ u2} G a y)) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) z) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) f (MonoidAlgebra.single.{u1, u2} k G _inst_1 x r)) z) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (instHMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f y) r))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.mul_single_apply_aux 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 := by
   classical exact
@@ -580,23 +475,11 @@ theorem mul_single_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
         
 #align monoid_algebra.mul_single_apply_aux MonoidAlgebra.mul_single_apply_aux
 
-/- warning: monoid_algebra.mul_single_one_apply -> MonoidAlgebra.mul_single_one_apply is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G), Eq.{succ u1} k (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G _inst_2))) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) r)) x) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f x) r)
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u2 u1, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G _inst_2))) f (MonoidAlgebra.single.{u1, u2} k G _inst_1 (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G (MulOneClass.toOne.{u2} G _inst_2))) r)) x) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (instHMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f x) r)
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.mul_single_one_apply MonoidAlgebra.mul_single_one_applyₓ'. -/
 theorem mul_single_one_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x : G) :
     (f * single 1 r) x = f x * r :=
   f.mul_single_apply_aux fun a => by rw [mul_one]
 #align monoid_algebra.mul_single_one_apply MonoidAlgebra.mul_single_one_apply
 
-/- warning: monoid_algebra.mul_single_apply_of_not_exists_mul -> MonoidAlgebra.mul_single_apply_of_not_exists_mul is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (r : k) {g : G} {g' : G} (x : MonoidAlgebra.{u1, u2} k G _inst_1), (Not (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G g' (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) d g)))) -> (Eq.{succ u1} k (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) x (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) g r)) g') (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (r : k) {g : G} {g' : G} (x : MonoidAlgebra.{u1, u2} k G _inst_1), (Not (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G g' (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) d g)))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) x (MonoidAlgebra.single.{u1, u2} k G _inst_1 g r)) g') (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.mul_single_apply_of_not_exists_mul 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 * Finsupp.single g r : MonoidAlgebra k G) g' = 0 := by
   classical
@@ -610,12 +493,6 @@ theorem mul_single_apply_of_not_exists_mul [Mul G] (r : k) {g g' : G} (x : Monoi
       exact h ⟨_, rfl⟩
 #align monoid_algebra.mul_single_apply_of_not_exists_mul MonoidAlgebra.mul_single_apply_of_not_exists_mul
 
-/- warning: monoid_algebra.single_mul_apply_aux -> MonoidAlgebra.single_mul_apply_aux is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) {r : k} {x : G} {y : G} {z : G}, (forall (a : G), Iff (Eq.{succ u2} G (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) x a) y) (Eq.{succ u2} G a z)) -> (Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (instHMul.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r) f) y) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) r (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f z)))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) {r : k} {x : G} {y : G} {z : G}, (forall (a : G), Iff (Eq.{succ u2} G (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) x a) y) (Eq.{succ u2} G a z)) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) (MonoidAlgebra.single.{u1, u2} k G _inst_1 x r) f) y) (HMul.hMul.{u1, u1, u1} k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) z) k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) r (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f z)))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_mul_apply_aux 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 := by
   classical exact
@@ -629,23 +506,11 @@ theorem single_mul_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
         
 #align monoid_algebra.single_mul_apply_aux MonoidAlgebra.single_mul_apply_aux
 
-/- warning: monoid_algebra.single_one_mul_apply -> MonoidAlgebra.single_one_mul_apply is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G), Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (instHMul.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G _inst_2))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) r) f) x) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) r (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f x))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G _inst_2))) (MonoidAlgebra.single.{u1, u2} k G _inst_1 (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G (MulOneClass.toOne.{u2} G _inst_2))) r) f) x) (HMul.hMul.{u1, u1, u1} k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) r (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f x))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_one_mul_apply MonoidAlgebra.single_one_mul_applyₓ'. -/
 theorem single_one_mul_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x : G) :
     (single 1 r * f) x = r * f x :=
   f.single_mul_apply_aux fun a => by rw [one_mul]
 #align monoid_algebra.single_one_mul_apply MonoidAlgebra.single_one_mul_apply
 
-/- warning: monoid_algebra.single_mul_apply_of_not_exists_mul -> MonoidAlgebra.single_mul_apply_of_not_exists_mul is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (r : k) {g : G} {g' : G} (x : MonoidAlgebra.{u1, u2} k G _inst_1), (Not (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G g' (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) g d)))) -> (Eq.{succ u1} k (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) g r) x) g') (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (r : k) {g : G} {g' : G} (x : MonoidAlgebra.{u1, u2} k G _inst_1), (Not (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G g' (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) g d)))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) (MonoidAlgebra.single.{u1, u2} k G _inst_1 g r) x) g') (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_mul_apply_of_not_exists_mul 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) : (Finsupp.single g r * x : MonoidAlgebra k G) g' = 0 := by
   classical
@@ -659,9 +524,6 @@ theorem single_mul_apply_of_not_exists_mul [Mul G] (r : k) {g g' : G} (x : Monoi
       exact h ⟨_, rfl⟩
 #align monoid_algebra.single_mul_apply_of_not_exists_mul MonoidAlgebra.single_mul_apply_of_not_exists_mul
 
-/- warning: monoid_algebra.lift_nc_smul -> MonoidAlgebra.liftNC_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_smul 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 φ :=
   by
@@ -681,12 +543,6 @@ section NonUnitalNonAssocAlgebra
 
 variable (k) [Semiring k] [DistribSMul R k] [Mul G]
 
-/- warning: monoid_algebra.is_scalar_tower_self -> MonoidAlgebra.isScalarTower_self is a dubious translation:
-lean 3 declaration is
-  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Mul.{u2} G] [_inst_4 : IsScalarTower.{u3, u1, u1} R k k (SMulZeroClass.toHasSmul.{u3, u1} R k (AddZeroClass.toHasZero.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)) (Mul.toSMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (SMulZeroClass.toHasSmul.{u3, u1} R k (AddZeroClass.toHasZero.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))], IsScalarTower.{u3, max u1 u2, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u3, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))) (Mul.toSMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_3)) (SMulZeroClass.toHasSmul.{u3, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)))
-but is expected to have type
-  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Mul.{u2} G] [_inst_4 : IsScalarTower.{u3, u1, u1} R k k (SMulZeroClass.toSMul.{u3, u1} R k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)) (SMulZeroClass.toSMul.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (SMulZeroClass.toSMul.{u3, u1} R k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))], IsScalarTower.{u3, max u2 u1, max u2 u1} R (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u3, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))) (SMulZeroClass.toSMul.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (SMulWithZero.toSMulZeroClass.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toSMulWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))))) (SMulZeroClass.toSMul.{u3, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.is_scalar_tower_self MonoidAlgebra.isScalarTower_selfₓ'. -/
 instance isScalarTower_self [IsScalarTower R k k] :
     IsScalarTower R (MonoidAlgebra k G) (MonoidAlgebra k G) :=
   ⟨fun t a b => by
@@ -696,12 +552,6 @@ instance isScalarTower_self [IsScalarTower R k k] :
         smul_eq_mul, Pi.smul_apply, smul_zero]⟩
 #align monoid_algebra.is_scalar_tower_self MonoidAlgebra.isScalarTower_self
 
-/- warning: monoid_algebra.smul_comm_class_self -> MonoidAlgebra.sMulCommClass_self is a dubious translation:
-lean 3 declaration is
-  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Mul.{u2} G] [_inst_4 : SMulCommClass.{u3, u1, u1} R k k (SMulZeroClass.toHasSmul.{u3, u1} R k (AddZeroClass.toHasZero.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)) (Mul.toSMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))], SMulCommClass.{u3, max u1 u2, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u3, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))) (Mul.toSMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_3))
-but is expected to have type
-  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Mul.{u2} G] [_inst_4 : SMulCommClass.{u3, u1, u1} R k k (SMulZeroClass.toSMul.{u3, u1} R k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)) (SMulZeroClass.toSMul.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))], SMulCommClass.{u3, max u2 u1, max u2 u1} R (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u3, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))) (SMulZeroClass.toSMul.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (SMulWithZero.toSMulZeroClass.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toSMulWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.smul_comm_class_self MonoidAlgebra.sMulCommClass_selfₓ'. -/
 /-- Note that if `k` is a `comm_semiring` then we have `smul_comm_class k k k` and so we can take
 `R = k` in the below. In other words, if the coefficients are commutative amongst themselves, they
 also commute with the algebra multiplication. -/
@@ -715,12 +565,6 @@ instance sMulCommClass_self [SMulCommClass R k k] :
         MulZeroClass.mul_zero, smul_zero]⟩
 #align monoid_algebra.smul_comm_class_self MonoidAlgebra.sMulCommClass_self
 
-/- warning: monoid_algebra.smul_comm_class_symm_self -> MonoidAlgebra.sMulCommClass_symm_self is a dubious translation:
-lean 3 declaration is
-  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Mul.{u2} G] [_inst_4 : SMulCommClass.{u1, u3, u1} k R k (Mul.toSMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (SMulZeroClass.toHasSmul.{u3, u1} R k (AddZeroClass.toHasZero.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))], SMulCommClass.{max u1 u2, u3, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.{u1, u2} k G _inst_1) (Mul.toSMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_3)) (SMulZeroClass.toHasSmul.{u3, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)))
-but is expected to have type
-  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Mul.{u2} G] [_inst_4 : SMulCommClass.{u1, u3, u1} k R k (SMulZeroClass.toSMul.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (SMulZeroClass.toSMul.{u3, u1} R k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))], SMulCommClass.{max u2 u1, u3, max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (SMulWithZero.toSMulZeroClass.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toSMulWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))))) (SMulZeroClass.toSMul.{u3, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.smul_comm_class_symm_self MonoidAlgebra.sMulCommClass_symm_selfₓ'. -/
 instance sMulCommClass_symm_self [SMulCommClass k R k] :
     SMulCommClass (MonoidAlgebra k G) R (MonoidAlgebra k G) :=
   ⟨fun t a b => by haveI := SMulCommClass.symm k R k; rw [← smul_comm]⟩
@@ -728,9 +572,6 @@ instance sMulCommClass_symm_self [SMulCommClass k R k] :
 
 variable {A : Type u₃} [NonUnitalNonAssocSemiring A]
 
-/- warning: monoid_algebra.non_unital_alg_hom_ext -> MonoidAlgebra.nonUnitalAlgHom_ext is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.non_unital_alg_hom_ext MonoidAlgebra.nonUnitalAlgHom_extₓ'. -/
 /-- A non_unital `k`-algebra homomorphism from `monoid_algebra k G` is uniquely defined by its
 values on the functions `single a 1`. -/
 theorem nonUnitalAlgHom_ext [DistribMulAction k A] {φ₁ φ₂ : MonoidAlgebra k G →ₙₐ[k] A}
@@ -739,12 +580,6 @@ theorem nonUnitalAlgHom_ext [DistribMulAction k A] {φ₁ φ₂ : MonoidAlgebra
     Finsupp.distribMulActionHom_ext' fun a => DistribMulActionHom.ext_ring (h a)
 #align monoid_algebra.non_unital_alg_hom_ext MonoidAlgebra.nonUnitalAlgHom_ext
 
-/- warning: monoid_algebra.non_unital_alg_hom_ext' -> MonoidAlgebra.nonUnitalAlgHom_ext' is a dubious translation:
-lean 3 declaration is
-  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Mul.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (Eq.{max (succ u3) (succ u2)} (MulHom.{u2, u3} G A _inst_3 (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4))) (MulHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G _inst_1) A _inst_3 (Distrib.toHasMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4)) (NonUnitalAlgHom.toMulHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5 φ₁) (MonoidAlgebra.ofMagma.{u1, u2} k G _inst_1 _inst_3)) (MulHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G _inst_1) A _inst_3 (Distrib.toHasMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4)) (NonUnitalAlgHom.toMulHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5 φ₂) (MonoidAlgebra.ofMagma.{u1, u2} k G _inst_1 _inst_3))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
-but is expected to have type
-  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Mul.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (Eq.{max (succ u2) (succ u3)} (MulHom.{u2, u3} G A _inst_3 (NonUnitalNonAssocSemiring.toMul.{u3} A _inst_4)) (MulHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G _inst_1) A _inst_3 (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)) (NonUnitalNonAssocSemiring.toMul.{u3} A _inst_4) (NonUnitalAlgHom.toMulHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5 φ₁) (MonoidAlgebra.ofMagma.{u1, u2} k G _inst_1 _inst_3)) (MulHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G _inst_1) A _inst_3 (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)) (NonUnitalNonAssocSemiring.toMul.{u3} A _inst_4) (NonUnitalAlgHom.toMulHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5 φ₂) (MonoidAlgebra.ofMagma.{u1, u2} k G _inst_1 _inst_3))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.non_unital_alg_hom_ext' MonoidAlgebra.nonUnitalAlgHom_ext'ₓ'. -/
 /-- See note [partially-applied ext lemmas]. -/
 @[ext]
 theorem nonUnitalAlgHom_ext' [DistribMulAction k A] {φ₁ φ₂ : MonoidAlgebra k G →ₙₐ[k] A}
@@ -752,12 +587,6 @@ theorem nonUnitalAlgHom_ext' [DistribMulAction k A] {φ₁ φ₂ : MonoidAlgebra
   nonUnitalAlgHom_ext k <| MulHom.congr_fun h
 #align monoid_algebra.non_unital_alg_hom_ext' MonoidAlgebra.nonUnitalAlgHom_ext'
 
-/- warning: monoid_algebra.lift_magma -> MonoidAlgebra.liftMagma is a dubious translation:
-lean 3 declaration is
-  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Mul.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : Module.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)] [_inst_6 : IsScalarTower.{u1, u3, u3} k A A (SMulZeroClass.toHasSmul.{u1, u3} k A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} k A (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4))) (SMulZeroClass.toHasSmul.{u1, u3} k A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} k A (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5))))] [_inst_7 : SMulCommClass.{u1, u3, u3} k A A (SMulZeroClass.toHasSmul.{u1, u3} k A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} k A (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4)))], Equiv.{max (succ u3) (succ u2), max (succ (max u1 u2)) (succ u3)} (MulHom.{u2, u3} G A _inst_3 (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4))) (NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 (Module.toDistribMulAction.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5))
-but is expected to have type
-  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Mul.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : Module.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)] [_inst_6 : IsScalarTower.{u1, u3, u3} k A A (SMulZeroClass.toSMul.{u1, u3} k A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u1, u3} k A (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)))) (SMulZeroClass.toSMul.{u1, u3} k A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u1, u3} k A (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5))))] [_inst_7 : SMulCommClass.{u1, u3, u3} k A A (SMulZeroClass.toSMul.{u1, u3} k A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u1, u3} k A (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4))))], Equiv.{max (succ u3) (succ u2), max (succ u3) (succ (max u2 u1))} (MulHom.{u2, u3} G A _inst_3 (NonUnitalNonAssocSemiring.toMul.{u3} A _inst_4)) (NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 (Module.toDistribMulAction.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_magma MonoidAlgebra.liftMagmaₓ'. -/
 /-- The functor `G ↦ monoid_algebra k G`, from the category of magmas to the category of non-unital,
 non-associative algebras over `k` is adjoint to the forgetful functor in the other direction. -/
 @[simps]
@@ -800,12 +629,6 @@ section Algebra
 
 attribute [local reducible] MonoidAlgebra
 
-/- warning: monoid_algebra.single_one_comm -> MonoidAlgebra.single_one_comm is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (r : k) (f : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)), Eq.{succ (max u2 u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (instHMul.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toHasMul.{u2} G _inst_2))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) r) f) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (instHMul.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toHasMul.{u2} G _inst_2))) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) r))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (r : k) (f : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)), Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toMul.{u2} G _inst_2))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G (MulOneClass.toOne.{u2} G _inst_2))) r) f) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toMul.{u2} G _inst_2))) f (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G (MulOneClass.toOne.{u2} G _inst_2))) r))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_one_comm MonoidAlgebra.single_one_commₓ'. -/
 theorem single_one_comm [CommSemiring k] [MulOneClass G] (r : k) (f : MonoidAlgebra k G) :
     single 1 r * f = f * single 1 r := by ext;
   rw [single_one_mul_apply, mul_single_one_apply, mul_comm]
@@ -836,9 +659,6 @@ def mapDomainRingHom (k : Type _) {H F : Type _} [Semiring k] [Monoid G] [Monoid
 #align monoid_algebra.map_domain_ring_hom MonoidAlgebra.mapDomainRingHom
 -/
 
-/- warning: monoid_algebra.ring_hom_ext -> MonoidAlgebra.ringHom_ext is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.ring_hom_ext MonoidAlgebra.ringHom_extₓ'. -/
 /-- If two ring homomorphisms from `monoid_algebra k G` are equal on all `single a 1`
 and `single 1 b`, then they are equal. -/
 theorem ringHom_ext {R} [Semiring k] [MulOneClass G] [Semiring R] {f g : MonoidAlgebra k G →+* R}
@@ -850,9 +670,6 @@ theorem ringHom_ext {R} [Semiring k] [MulOneClass G] [Semiring R] {f g : MonoidA
         f.map_mul, g.map_mul, h₁, h_of]
 #align monoid_algebra.ring_hom_ext MonoidAlgebra.ringHom_ext
 
-/- warning: monoid_algebra.ring_hom_ext' -> MonoidAlgebra.ringHom_ext' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.ring_hom_ext' MonoidAlgebra.ringHom_ext'ₓ'. -/
 /-- If two ring homomorphisms from `monoid_algebra k G` are equal on all `single a 1`
 and `single 1 b`, then they are equal.
 
@@ -889,39 +706,21 @@ def singleOneAlgHom {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Mo
 #align monoid_algebra.single_one_alg_hom MonoidAlgebra.singleOneAlgHom
 -/
 
-/- warning: monoid_algebra.coe_algebra_map -> MonoidAlgebra.coe_algebraMap is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {A : Type.{u3}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u1, u3} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u2} G], Eq.{max (succ u1) (succ (max u3 u2))} (k -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (coeFn.{max (succ u1) (succ (max u3 u2)), max (succ u1) (succ (max u3 u2))} (RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (fun (_x : RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) => k -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (RingHom.hasCoeToFun.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (algebraMap.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u1, succ u3, max (succ u2) (succ u3)} k A (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.single.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G (Monoid.toMulOneClass.{u2} G _inst_4)))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (fun (_x : RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) => k -> A) (RingHom.hasCoeToFun.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (algebraMap.{u1, u3} k A _inst_1 _inst_2 _inst_3)))
-but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} k] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u3} G], Eq.{max (max (succ u2) (succ u3)) (succ u1)} (forall (ᾰ : k), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) ᾰ) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u2, max (succ u3) (succ u1)} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u2, u3, u1} k G A _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u2, succ u1, max (succ u3) (succ u1)} k A (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.single.{u1, u3} A G _inst_2 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (Monoid.toOne.{u3} G _inst_4)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (algebraMap.{u2, u1} k A _inst_1 _inst_2 _inst_3)))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.coe_algebra_map 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 :=
   rfl
 #align monoid_algebra.coe_algebra_map MonoidAlgebra.coe_algebraMap
 
-/- warning: monoid_algebra.single_eq_algebra_map_mul_of -> MonoidAlgebra.single_eq_algebraMap_mul_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_eq_algebra_map_mul_of 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 := by simp
 #align monoid_algebra.single_eq_algebra_map_mul_of MonoidAlgebra.single_eq_algebraMap_mul_of
 
-/- warning: monoid_algebra.single_algebra_map_eq_algebra_map_mul_of -> MonoidAlgebra.single_algebraMap_eq_algebraMap_mul_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_algebra_map_eq_algebra_map_mul_of 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 := by simp
 #align monoid_algebra.single_algebra_map_eq_algebra_map_mul_of MonoidAlgebra.single_algebraMap_eq_algebraMap_mul_of
 
-/- warning: monoid_algebra.induction_on -> MonoidAlgebra.induction_on is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] {p : (MonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : MonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) => G -> (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) g)) -> (forall (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Finsupp.add.{u2, u1} G k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) f g))) -> (forall (r : k) (f : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (SMul.smul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) r f))) -> (p f)
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] {p : (MonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : MonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) g)) -> (forall (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r f))) -> (p f)
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.induction_on 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 :=
@@ -940,9 +739,6 @@ variable {k G} [CommSemiring k] [Monoid G]
 
 variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [Algebra k B]
 
-/- warning: monoid_algebra.lift_nc_alg_hom -> MonoidAlgebra.liftNCAlgHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_alg_hom MonoidAlgebra.liftNCAlgHomₓ'. -/
 /-- `lift_nc_ring_hom` as a `alg_hom`, for when `f` is an `alg_hom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
     MonoidAlgebra A G →ₐ[k] B :=
@@ -962,9 +758,6 @@ theorem algHom_ext ⦃φ₁ φ₂ : MonoidAlgebra k G →ₐ[k] A⦄
 #align monoid_algebra.alg_hom_ext MonoidAlgebra.algHom_ext
 -/
 
-/- warning: monoid_algebra.alg_hom_ext' -> MonoidAlgebra.algHom_ext' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.alg_hom_ext' MonoidAlgebra.algHom_ext'ₓ'. -/
 /-- See note [partially-applied ext lemmas]. -/
 @[ext]
 theorem algHom_ext' ⦃φ₁ φ₂ : MonoidAlgebra k G →ₐ[k] A⦄
@@ -1009,9 +802,6 @@ theorem lift_def (F : G →* A) : ⇑(lift k G A F) = liftNC ((algebraMap k A :
 #align monoid_algebra.lift_def MonoidAlgebra.lift_def
 -/
 
-/- warning: monoid_algebra.lift_symm_apply -> MonoidAlgebra.lift_symm_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_symm_apply 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) :=
@@ -1065,9 +855,6 @@ def mapDomainNonUnitalAlgHom (k A : Type _) [CommSemiring k] [Semiring A] [Algeb
 #align monoid_algebra.map_domain_non_unital_alg_hom MonoidAlgebra.mapDomainNonUnitalAlgHom
 -/
 
-/- warning: monoid_algebra.map_domain_algebra_map -> MonoidAlgebra.mapDomain_algebraMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.map_domain_algebra_map MonoidAlgebra.mapDomain_algebraMapₓ'. -/
 theorem mapDomain_algebraMap (k A : Type _) {H F : Type _} [CommSemiring k] [Semiring A]
     [Algebra k A] [Monoid H] [MonoidHomClass F G H] (f : F) (r : k) :
     mapDomain f (algebraMap k (MonoidAlgebra A G) r) = algebraMap k (MonoidAlgebra A H) r := by
@@ -1103,9 +890,6 @@ def GroupSmul.linearMap [Monoid G] [CommSemiring k] (V : Type u₃) [AddCommMono
 #align monoid_algebra.group_smul.linear_map MonoidAlgebra.GroupSmul.linearMap
 -/
 
-/- warning: monoid_algebra.group_smul.linear_map_apply -> MonoidAlgebra.GroupSmul.linearMap_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.group_smul.linear_map_apply 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)
@@ -1125,9 +909,6 @@ variable [Monoid G] [CommSemiring k] {V W : Type u₃} [AddCommMonoid V] [Module
 
 include h
 
-/- warning: monoid_algebra.equivariant_of_linear_of_comm -> MonoidAlgebra.equivariantOfLinearOfComm is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.equivariant_of_linear_of_comm MonoidAlgebra.equivariantOfLinearOfCommₓ'. -/
 /-- Build a `k[G]`-linear map from a `k`-linear map and evidence that it is `G`-equivariant. -/
 def equivariantOfLinearOfComm : V →ₗ[MonoidAlgebra k G] W
     where
@@ -1144,9 +925,6 @@ def equivariantOfLinearOfComm : V →ₗ[MonoidAlgebra k G] W
       all_goals infer_instance
 #align monoid_algebra.equivariant_of_linear_of_comm MonoidAlgebra.equivariantOfLinearOfComm
 
-/- warning: monoid_algebra.equivariant_of_linear_of_comm_apply -> MonoidAlgebra.equivariantOfLinearOfComm_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.equivariant_of_linear_of_comm_apply MonoidAlgebra.equivariantOfLinearOfComm_applyₓ'. -/
 @[simp]
 theorem equivariantOfLinearOfComm_apply (v : V) : (equivariantOfLinearOfComm f h) v = f v :=
   rfl
@@ -1164,12 +942,6 @@ variable {ι : Type ui}
 
 attribute [local reducible] MonoidAlgebra
 
-/- warning: monoid_algebra.prod_single -> MonoidAlgebra.prod_single is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {ι : Type.{u3}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : CommMonoid.{u2} G] {s : Finset.{u3} ι} {a : ι -> G} {b : ι -> k}, Eq.{succ (max u2 u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finset.prod.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) ι (CommSemiring.toCommMonoid.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (MonoidAlgebra.commSemiring.{u1, u2} k G _inst_1 _inst_2)) s (fun (i : ι) => Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (a i) (b i))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (Finset.prod.{u2, u3} G ι _inst_2 s (fun (i : ι) => a i)) (Finset.prod.{u1, u3} k ι (CommSemiring.toCommMonoid.{u1} k _inst_1) s (fun (i : ι) => b i)))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} {ι : Type.{u3}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : CommMonoid.{u2} G] {s : Finset.{u3} ι} {a : ι -> G} {b : ι -> k}, Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Finset.prod.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) ι (CommSemiring.toCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.commSemiring.{u1, u2} k G _inst_1 _inst_2)) s (fun (i : ι) => MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (a i) (b i))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Finset.prod.{u2, u3} G ι _inst_2 s (fun (i : ι) => a i)) (Finset.prod.{u1, u3} k ι (CommSemiring.toCommMonoid.{u1} k _inst_1) s (fun (i : ι) => b i)))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.prod_single MonoidAlgebra.prod_singleₓ'. -/
 theorem prod_single [CommSemiring k] [CommMonoid G] {s : Finset ι} {a : ι → G} {b : ι → k} :
     (∏ i in s, single (a i) (b i)) = single (∏ i in s, a i) (∏ i in s, b i) :=
   Finset.cons_induction_on s rfl fun a s has ih => by
@@ -1185,36 +957,18 @@ variable [Semiring k] [Group G]
 
 attribute [local reducible] MonoidAlgebra
 
-/- warning: monoid_algebra.mul_single_apply -> MonoidAlgebra.mul_single_apply is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Group.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G) (y : G), Eq.{succ u1} k (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))))) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r)) y) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) y (Inv.inv.{u2} G (DivInvMonoid.toHasInv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) x))) r)
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Group.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G) (y : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))))) f (MonoidAlgebra.single.{u1, u2} k G _inst_1 x r)) y) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) y (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) x))) k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) y (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) x))) (instHMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) y (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) x))) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) y (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) x))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) y (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) x))) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) y (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) x))) _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) y (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) x))) r)
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.mul_single_apply 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 :=
   f.mul_single_apply_aux fun a => eq_mul_inv_iff_mul_eq.symm
 #align monoid_algebra.mul_single_apply MonoidAlgebra.mul_single_apply
 
-/- warning: monoid_algebra.single_mul_apply -> MonoidAlgebra.single_mul_apply is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Group.{u2} G] (r : k) (x : G) (f : MonoidAlgebra.{u1, u2} k G _inst_1) (y : G), Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (instHMul.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r) f) y) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) r (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) (Inv.inv.{u2} G (DivInvMonoid.toHasInv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) x) y)))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Group.{u2} G] (r : k) (x : G) (f : MonoidAlgebra.{u1, u2} k G _inst_1) (y : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))))) (MonoidAlgebra.single.{u1, u2} k G _inst_1 x r) f) y) (HMul.hMul.{u1, u1, u1} k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) x) y)) k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) r (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) x) y)))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_mul_apply 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) :=
   f.single_mul_apply_aux fun z => eq_inv_mul_iff_mul_eq.symm
 #align monoid_algebra.single_mul_apply MonoidAlgebra.single_mul_apply
 
-/- warning: monoid_algebra.mul_apply_left -> MonoidAlgebra.mul_apply_left is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Group.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1) (x : G), Eq.{succ u1} k (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))))) f g) x) (Finsupp.sum.{u2, u1, u1} G k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) f (fun (a : G) (b : k) => HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) b (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) g (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) (Inv.inv.{u2} G (DivInvMonoid.toHasInv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) a) x))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Group.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))))) f g) x) (Finsupp.sum.{u2, u1, u1} G k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) f (fun (a : G) (b : k) => HMul.hMul.{u1, u1, u1} k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) a) x)) k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) b (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) g (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) a) x))))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.mul_apply_left 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) :=
   calc
@@ -1224,12 +978,6 @@ theorem mul_apply_left (f g : MonoidAlgebra k G) (x : G) :
     
 #align monoid_algebra.mul_apply_left MonoidAlgebra.mul_apply_left
 
-/- warning: monoid_algebra.mul_apply_right -> MonoidAlgebra.mul_apply_right is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Group.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1) (x : G), Eq.{succ u1} k (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))))) f g) x) (Finsupp.sum.{u2, u1, u1} G k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) g (fun (a : G) (b : k) => HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) x (Inv.inv.{u2} G (DivInvMonoid.toHasInv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) a))) b))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Group.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))))) f g) x) (Finsupp.sum.{u2, u1, u1} G k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) g (fun (a : G) (b : k) => HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) x (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) a))) k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) x (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) a))) (instHMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) x (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) a))) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) x (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) a))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) x (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) a))) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) x (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) a))) _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) x (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) a))) b))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.mul_apply_right MonoidAlgebra.mul_apply_rightₓ'. -/
 -- If we'd assumed `comm_semiring`, we could deduce this from `mul_apply_left`.
 theorem mul_apply_right (f g : MonoidAlgebra k G) (x : G) :
     (f * g) x = g.Sum fun a b => f (x * a⁻¹) * b :=
@@ -1248,12 +996,6 @@ open Finsupp MulOpposite
 
 variable [Semiring k]
 
-/- warning: monoid_algebra.op_ring_equiv -> MonoidAlgebra.opRingEquiv is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G], RingEquiv.{max u1 u2, max u1 u2} (MulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.hasMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.hasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.hasMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.hasMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G], RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.mul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.mul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.add.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.mul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.op_ring_equiv MonoidAlgebra.opRingEquivₓ'. -/
 /-- The opposite of an `monoid_algebra R I` equivalent as a ring to
 the `monoid_algebra Rᵐᵒᵖ Iᵐᵒᵖ` over the opposite ring, taking elements to their opposite. -/
 @[simps (config := { simpRhs := true })]
@@ -1293,9 +1035,6 @@ variable {V : Type _} [AddCommMonoid V]
 
 variable [Module k V] [Module (MonoidAlgebra k G) V] [IsScalarTower k (MonoidAlgebra k G) V]
 
-/- warning: monoid_algebra.submodule_of_smul_mem -> MonoidAlgebra.submoduleOfSmulMem is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.submodule_of_smul_mem MonoidAlgebra.submoduleOfSmulMemₓ'. -/
 /-- A submodule over `k` which is stable under scalar multiplication by elements of `G` is a
 submodule over `monoid_algebra k G`  -/
 def submoduleOfSmulMem (W : Submodule k V) (h : ∀ (g : G) (v : V), v ∈ W → of k G g • v ∈ W) :
@@ -1344,12 +1083,6 @@ section
 
 variable [Semiring k] [NonUnitalNonAssocSemiring R]
 
-/- warning: add_monoid_algebra.lift_nc -> AddMonoidAlgebra.liftNC is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : NonUnitalNonAssocSemiring.{u3} R], (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) -> ((Multiplicative.{u2} G) -> R) -> (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : NonUnitalNonAssocSemiring.{u3} R], (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) -> ((Multiplicative.{u2} G) -> R) -> (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u1, u2} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2))))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc AddMonoidAlgebra.liftNCₓ'. -/
 /-- A non-commutative version of `add_monoid_algebra.lift`: given a additive homomorphism `f : k →+
 R` and a map `g : multiplicative G → R`, returns the additive
 homomorphism from `add_monoid_algebra k G` such that `lift_nc f g (single a b) = f b * g a`. If `f`
@@ -1360,9 +1093,6 @@ def liftNC (f : k →+ R) (g : Multiplicative G → R) : AddMonoidAlgebra k G 
   liftAddHom fun x : G => (AddMonoidHom.mulRight (g <| Multiplicative.ofAdd x)).comp f
 #align add_monoid_algebra.lift_nc AddMonoidAlgebra.liftNC
 
-/- warning: add_monoid_algebra.lift_nc_single -> AddMonoidAlgebra.liftNC_single is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_single 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) :=
@@ -1382,12 +1112,6 @@ variable [Semiring k] [Add G]
 instance : Mul (AddMonoidAlgebra k G) :=
   ⟨fun f g => f.Sum fun a₁ b₁ => g.Sum fun a₂ b₂ => single (a₁ + a₂) (b₁ * b₂)⟩
 
-/- warning: add_monoid_algebra.mul_def -> AddMonoidAlgebra.mul_def is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] {f : AddMonoidAlgebra.{u1, u2} k G _inst_1} {g : AddMonoidAlgebra.{u1, u2} k G _inst_1}, Eq.{succ (max u2 u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) f g) (Finsupp.sum.{u2, u1, max u2 u1} G k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1) f (fun (a₁ : G) (b₁ : k) => Finsupp.sum.{u2, u1, max u2 u1} G k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1) g (fun (a₂ : G) (b₂ : k) => Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) a₁ a₂) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) b₁ b₂))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] {f : AddMonoidAlgebra.{u1, u2} k G _inst_1} {g : AddMonoidAlgebra.{u1, u2} k G _inst_1}, Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) f g) (Finsupp.sum.{u2, u1, max u2 u1} G k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u1, u2} k G _inst_1) f (fun (a₁ : G) (b₁ : k) => Finsupp.sum.{u2, u1, max u2 u1} G k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u1, u2} k G _inst_1) g (fun (a₂ : G) (b₂ : k) => AddMonoidAlgebra.single.{u1, u2} k G _inst_1 (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) a₁ a₂) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) b₁ b₂))))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mul_def AddMonoidAlgebra.mul_defₓ'. -/
 theorem mul_def {f g : AddMonoidAlgebra k G} :
     f * g = f.Sum fun a₁ b₁ => g.Sum fun a₂ b₂ => single (a₁ + a₂) (b₁ * b₂) :=
   rfl
@@ -1415,9 +1139,6 @@ instance : NonUnitalNonAssocSemiring (AddMonoidAlgebra k G) :=
 
 variable [Semiring R]
 
-/- warning: add_monoid_algebra.lift_nc_mul -> AddMonoidAlgebra.liftNC_mul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_mul AddMonoidAlgebra.liftNC_mulₓ'. -/
 theorem liftNC_mul {g_hom : Type _} [MulHomClass g_hom (Multiplicative G) R] (f : k →+* R)
     (g : g_hom) (a b : AddMonoidAlgebra k G)
     (h_comm : ∀ {x y}, y ∈ a.support → Commute (f (b x)) (g <| Multiplicative.ofAdd y)) :
@@ -1436,19 +1157,10 @@ variable [Semiring k] [Zero G] [NonAssocSemiring R]
 instance : One (AddMonoidAlgebra k G) :=
   ⟨single 0 1⟩
 
-/- warning: add_monoid_algebra.one_def -> AddMonoidAlgebra.one_def is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Zero.{u2} G], Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (OfNat.ofNat.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) 1 (OfNat.mk.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) 1 (One.one.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.one.{u1, u2} k G _inst_1 _inst_2)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G _inst_2))) (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Zero.{u2} G], Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (OfNat.ofNat.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) 1 (One.toOfNat1.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.one.{u1, u2} k G _inst_1 _inst_2))) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 (OfNat.ofNat.{u2} G 0 (Zero.toOfNat0.{u2} G _inst_2)) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.one_def AddMonoidAlgebra.one_defₓ'. -/
 theorem one_def : (1 : AddMonoidAlgebra k G) = single 0 1 :=
   rfl
 #align add_monoid_algebra.one_def AddMonoidAlgebra.one_def
 
-/- warning: add_monoid_algebra.lift_nc_one -> AddMonoidAlgebra.liftNC_one is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_one AddMonoidAlgebra.liftNC_oneₓ'. -/
 @[simp]
 theorem liftNC_one {g_hom : Type _} [OneHomClass g_hom (Multiplicative G) R] (f : k →+* R)
     (g : g_hom) : liftNC (f : k →+ R) g 1 = 1 :=
@@ -1496,12 +1208,6 @@ instance : NonAssocSemiring (AddMonoidAlgebra k G) :=
       simp only [mul_def, one_def, sum_single_index, MulZeroClass.mul_zero, single_zero, sum_zero,
         add_zero, mul_one, sum_single] }
 
-/- warning: add_monoid_algebra.nat_cast_def -> AddMonoidAlgebra.nat_cast_def is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (n : Nat), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) ((fun (a : Type) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{1, max (succ u2) (succ u1)} a b] => self.0) Nat (AddMonoidAlgebra.{u1, u2} k G _inst_1) (HasLiftT.mk.{1, max (succ u2) (succ u1)} Nat (AddMonoidAlgebra.{u1, u2} k G _inst_1) (CoeTCₓ.coe.{1, max (succ u2) (succ u1)} Nat (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Nat.castCoe.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidWithOne.toNatCast.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toAddCommMonoidWithOne.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))))))) n) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G _inst_2)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat k (HasLiftT.mk.{1, succ u1} Nat k (CoeTCₓ.coe.{1, succ u1} Nat k (Nat.castCoe.{u1} k (AddMonoidWithOne.toNatCast.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) n))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (n : Nat), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Nat.cast.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toNatCast.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)) n) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 (OfNat.ofNat.{u2} G 0 (Zero.toOfNat0.{u2} G (AddZeroClass.toZero.{u2} G _inst_2))) (Nat.cast.{u1} k (Semiring.toNatCast.{u1} k _inst_1) n))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.nat_cast_def AddMonoidAlgebra.nat_cast_defₓ'. -/
 theorem nat_cast_def (n : ℕ) : (n : AddMonoidAlgebra k G) = single 0 n :=
   rfl
 #align add_monoid_algebra.nat_cast_def AddMonoidAlgebra.nat_cast_def
@@ -1528,12 +1234,6 @@ instance : Semiring (AddMonoidAlgebra k G) :=
 
 variable [Semiring R]
 
-/- warning: add_monoid_algebra.lift_nc_ring_hom -> AddMonoidAlgebra.liftNCRingHom is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : Multiplicative.{u2} G), Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f x) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => (Multiplicative.{u2} G) -> R) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g y)) -> (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : Multiplicative.{u2} G), Commute.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) x) (NonUnitalNonAssocSemiring.toMul.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) x) (Semiring.toNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) x) _inst_3))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.instRingHomClassRingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) f x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => R) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) R (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g y)) -> (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_ring_hom AddMonoidAlgebra.liftNCRingHomₓ'. -/
 /-- `lift_nc` as a `ring_hom`, for when `f` and `g` commute -/
 def liftNCRingHom (f : k →+* R) (g : Multiplicative G →* R) (h_comm : ∀ x y, Commute (f x) (g y)) :
     AddMonoidAlgebra k G →+* R :=
@@ -1579,12 +1279,6 @@ instance [Ring k] [AddZeroClass G] : NonAssocRing (AddMonoidAlgebra k G) :=
     intCast_ofNat := fun n => by simpa
     intCast_negSucc := fun n => by simpa }
 
-/- warning: add_monoid_algebra.int_cast_def -> AddMonoidAlgebra.int_cast_def is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Ring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (z : Int), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) ((fun (a : Type) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{1, max (succ u2) (succ u1)} a b] => self.0) Int (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (HasLiftT.mk.{1, max (succ u2) (succ u1)} Int (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (CoeTCₓ.coe.{1, max (succ u2) (succ u1)} Int (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (Int.castCoe.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (AddGroupWithOne.toHasIntCast.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (AddCommGroupWithOne.toAddGroupWithOne.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (NonAssocRing.toAddCommGroupWithOne.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocRing.{u1, u2} k G _inst_1 _inst_2))))))) z) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (Ring.toSemiring.{u1} k _inst_1))))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G _inst_2)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int k (HasLiftT.mk.{1, succ u1} Int k (CoeTCₓ.coe.{1, succ u1} Int k (Int.castCoe.{u1} k (AddGroupWithOne.toHasIntCast.{u1} k (AddCommGroupWithOne.toAddGroupWithOne.{u1} k (Ring.toAddCommGroupWithOne.{u1} k _inst_1)))))) z))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Ring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (z : Int), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (Int.cast.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (NonAssocRing.toIntCast.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocRing.{u1, u2} k G _inst_1 _inst_2)) z) (AddMonoidAlgebra.single.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1) (OfNat.ofNat.{u2} G 0 (Zero.toOfNat0.{u2} G (AddZeroClass.toZero.{u2} G _inst_2))) (Int.cast.{u1} k (Ring.toIntCast.{u1} k _inst_1) z))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.int_cast_def AddMonoidAlgebra.int_cast_defₓ'. -/
 theorem int_cast_def [Ring k] [AddZeroClass G] (z : ℤ) : (z : AddMonoidAlgebra k G) = single 0 z :=
   rfl
 #align add_monoid_algebra.int_cast_def AddMonoidAlgebra.int_cast_def
@@ -1636,45 +1330,21 @@ section MiscTheorems
 
 variable [Semiring k]
 
-/- warning: add_monoid_algebra.mul_apply -> AddMonoidAlgebra.mul_apply is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DecidableEq.{succ u2} G] [_inst_3 : Add.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1) (x : G), Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_3)) f g) x) (Finsupp.sum.{u2, u1, u1} G k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) f (fun (a₁ : G) (b₁ : k) => Finsupp.sum.{u2, u1, u1} G k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) g (fun (a₂ : G) (b₂ : k) => ite.{succ u1} k (Eq.{succ u2} G (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_3) a₁ a₂) x) (_inst_2 (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_3) a₁ a₂) x) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) b₁ b₂) (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DecidableEq.{succ u2} G] [_inst_3 : Add.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_3)) f g) x) (Finsupp.sum.{u2, u1, u1} G k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) f (fun (a₁ : G) (b₁ : k) => Finsupp.sum.{u2, u1, u1} G k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) g (fun (a₂ : G) (b₂ : k) => ite.{succ u1} k (Eq.{succ u2} G (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_3) a₁ a₂) x) (_inst_2 (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_3) a₁ a₂) x) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) b₁ b₂) (OfNat.ofNat.{u1} k 0 (Zero.toOfNat0.{u1} k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))))))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mul_apply AddMonoidAlgebra.mul_applyₓ'. -/
 theorem mul_apply [DecidableEq G] [Add G] (f g : AddMonoidAlgebra 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 :=
   @MonoidAlgebra.mul_apply k (Multiplicative G) _ _ _ _ _ _
 #align add_monoid_algebra.mul_apply AddMonoidAlgebra.mul_apply
 
-/- warning: add_monoid_algebra.mul_apply_antidiagonal -> AddMonoidAlgebra.mul_apply_antidiagonal is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1) (x : G) (s : Finset.{u2} (Prod.{u2, u2} G G)), (forall {p : Prod.{u2, u2} G G}, Iff (Membership.Mem.{u2, u2} (Prod.{u2, u2} G G) (Finset.{u2} (Prod.{u2, u2} G G)) (Finset.hasMem.{u2} (Prod.{u2, u2} G G)) p s) (Eq.{succ u2} G (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) (Prod.fst.{u2, u2} G G p) (Prod.snd.{u2, u2} G G p)) x)) -> (Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) f g) x) (Finset.sum.{u1, u2} k (Prod.{u2, u2} G G) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) s (fun (p : Prod.{u2, u2} G G) => HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f (Prod.fst.{u2, u2} G G p)) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) g (Prod.snd.{u2, u2} G G p)))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1) (x : G) (s : Finset.{u2} (Prod.{u2, u2} G G)), (forall {p : Prod.{u2, u2} G G}, Iff (Membership.mem.{u2, u2} (Prod.{u2, u2} G G) (Finset.{u2} (Prod.{u2, u2} G G)) (Finset.instMembershipFinset.{u2} (Prod.{u2, u2} G G)) p s) (Eq.{succ u2} G (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) (Prod.fst.{u2, u2} G G p) (Prod.snd.{u2, u2} G G p)) x)) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) f g) x) (Finset.sum.{u1, u2} k (Prod.{u2, u2} G G) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) s (fun (p : Prod.{u2, u2} G G) => HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.snd.{u2, u2} G G p)) ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) (instHMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f (Prod.fst.{u2, u2} G G p)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) g (Prod.snd.{u2, u2} G G p)))))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mul_apply_antidiagonal AddMonoidAlgebra.mul_apply_antidiagonalₓ'. -/
 theorem mul_apply_antidiagonal [Add G] (f g : AddMonoidAlgebra k G) (x : G) (s : Finset (G × G))
     (hs : ∀ {p : G × G}, p ∈ s ↔ p.1 + p.2 = x) : (f * g) x = ∑ p in s, f p.1 * g p.2 :=
   @MonoidAlgebra.mul_apply_antidiagonal k (Multiplicative G) _ _ _ _ _ s @hs
 #align add_monoid_algebra.mul_apply_antidiagonal AddMonoidAlgebra.mul_apply_antidiagonal
 
-/- warning: add_monoid_algebra.single_mul_single -> AddMonoidAlgebra.single_mul_single is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] {a₁ : G} {a₂ : G} {b₁ : k} {b₂ : k}, Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a₁ b₁) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a₂ b₂)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) a₁ a₂) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) b₁ b₂))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] {a₁ : G} {a₂ : G} {b₁ : k} {b₂ : k}, Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 a₁ b₁) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 a₂ b₂)) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) a₁ a₂) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) b₁ b₂))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.single_mul_single AddMonoidAlgebra.single_mul_singleₓ'. -/
 theorem single_mul_single [Add G] {a₁ a₂ : G} {b₁ b₂ : k} :
     (single a₁ b₁ * single a₂ b₂ : AddMonoidAlgebra k G) = single (a₁ + a₂) (b₁ * b₂) :=
   @MonoidAlgebra.single_mul_single k (Multiplicative G) _ _ _ _ _ _
 #align add_monoid_algebra.single_mul_single AddMonoidAlgebra.single_mul_single
 
-/- warning: add_monoid_algebra.single_pow -> AddMonoidAlgebra.single_pow is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {a : G} {b : k} (n : Nat), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (HPow.hPow.{max u2 u1, 0, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) Nat (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHPow.{max u2 u1, 0} (AddMonoidAlgebra.{u1, u2} k G _inst_1) Nat (Monoid.Pow.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a b) n) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (SMul.smul.{0, u2} Nat G (AddMonoid.SMul.{u2} G _inst_2) n a) (HPow.hPow.{u1, 0, u1} k Nat k (instHPow.{u1, 0} k Nat (Monoid.Pow.{u1} k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) b n))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {a : G} {b : k} (n : Nat), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (HPow.hPow.{max u1 u2, 0, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) Nat (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHPow.{max u1 u2, 0} (AddMonoidAlgebra.{u1, u2} k G _inst_1) Nat (Monoid.Pow.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))))) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 a b) n) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 (HSMul.hSMul.{0, u2, u2} Nat G G (instHSMul.{0, u2} Nat G (AddMonoid.SMul.{u2} G _inst_2)) n a) (HPow.hPow.{u1, 0, u1} k Nat k (instHPow.{u1, 0} k Nat (Monoid.Pow.{u1} k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) b n))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.single_pow AddMonoidAlgebra.single_powₓ'. -/
 -- This should be a `@[simp]` lemma, but the simp_nf linter times out if we add this.
 -- Probably the correct fix is to make a `[add_]monoid_algebra.single` with the correct type,
 -- instead of relying on `finsupp.single`.
@@ -1685,12 +1355,6 @@ theorem single_pow [AddMonoid G] {a : G} {b : k} :
     rw [pow_succ, pow_succ, single_pow n, single_mul_single, add_comm, add_nsmul, one_nsmul]
 #align add_monoid_algebra.single_pow AddMonoidAlgebra.single_pow
 
-/- warning: add_monoid_algebra.map_domain_one -> AddMonoidAlgebra.mapDomain_one is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {α₂ : Type.{u3}} [_inst_2 : Semiring.{u2} β] [_inst_3 : Zero.{u1} α] [_inst_4 : Zero.{u3} α₂] {F : Type.{u4}} [_inst_5 : ZeroHomClass.{u4, u1, u3} F α α₂ _inst_3 _inst_4] (f : F), Eq.{max (succ u3) (succ u2)} (Finsupp.{u3, u2} α₂ β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))))))) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (ZeroHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) (OfNat.ofNat.{max u1 u2} (AddMonoidAlgebra.{u2, u1} β α _inst_2) 1 (OfNat.mk.{max u1 u2} (AddMonoidAlgebra.{u2, u1} β α _inst_2) 1 (One.one.{max u1 u2} (AddMonoidAlgebra.{u2, u1} β α _inst_2) (AddMonoidAlgebra.one.{u2, u1} β α _inst_2 _inst_3))))) (OfNat.ofNat.{max u3 u2} (AddMonoidAlgebra.{u2, u3} β α₂ _inst_2) 1 (OfNat.mk.{max u3 u2} (AddMonoidAlgebra.{u2, u3} β α₂ _inst_2) 1 (One.one.{max u3 u2} (AddMonoidAlgebra.{u2, u3} β α₂ _inst_2) (AddMonoidAlgebra.one.{u2, u3} β α₂ _inst_2 _inst_4))))
-but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : Zero.{u4} α] [_inst_4 : Zero.{u2} α₂] {F : Type.{u1}} [_inst_5 : ZeroHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F), Eq.{max (succ u3) (succ u2)} (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.124 : α) => α₂) _x) (ZeroHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (OfNat.ofNat.{max u4 u3} (AddMonoidAlgebra.{u3, u4} β α _inst_2) 1 (One.toOfNat1.{max u4 u3} (AddMonoidAlgebra.{u3, u4} β α _inst_2) (AddMonoidAlgebra.one.{u3, u4} β α _inst_2 _inst_3)))) (OfNat.ofNat.{max u3 u2} (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) 1 (One.toOfNat1.{max u3 u2} (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.one.{u3, u2} β α₂ _inst_2 _inst_4)))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.map_domain_one AddMonoidAlgebra.mapDomain_oneₓ'. -/
 /-- Like `finsupp.map_domain_zero`, but for the `1` we define in this file -/
 @[simp]
 theorem mapDomain_one {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [Zero α] [Zero α₂]
@@ -1700,12 +1364,6 @@ theorem mapDomain_one {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β]
   by simp_rw [one_def, map_domain_single, map_zero]
 #align add_monoid_algebra.map_domain_one AddMonoidAlgebra.mapDomain_one
 
-/- warning: add_monoid_algebra.map_domain_mul -> AddMonoidAlgebra.mapDomain_mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {α₂ : Type.{u3}} [_inst_2 : Semiring.{u2} β] [_inst_3 : Add.{u1} α] [_inst_4 : Add.{u3} α₂] {F : Type.{u4}} [_inst_5 : AddHomClass.{u4, u1, u3} F α α₂ _inst_3 _inst_4] (f : F) (x : AddMonoidAlgebra.{u2, u1} β α _inst_2) (y : AddMonoidAlgebra.{u2, u1} β α _inst_2), Eq.{max (succ u3) (succ u2)} (Finsupp.{u3, u2} α₂ β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))))))) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (AddHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u2, u1} β α _inst_2) (AddMonoidAlgebra.{u2, u1} β α _inst_2) (AddMonoidAlgebra.{u2, u1} β α _inst_2) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u2, u1} β α _inst_2) (AddMonoidAlgebra.hasMul.{u2, u1} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u3 u2, max u3 u2, max u3 u2} (AddMonoidAlgebra.{u2, u3} β α₂ _inst_2) (AddMonoidAlgebra.{u2, u3} β α₂ _inst_2) (AddMonoidAlgebra.{u2, u3} β α₂ _inst_2) (instHMul.{max u3 u2} (AddMonoidAlgebra.{u2, u3} β α₂ _inst_2) (AddMonoidAlgebra.hasMul.{u2, u3} β α₂ _inst_2 _inst_4)) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (AddHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) x) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (AddHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) y))
-but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : Add.{u4} α] [_inst_4 : Add.{u2} α₂] {F : Type.{u1}} [_inst_5 : AddHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F) (x : AddMonoidAlgebra.{u3, u4} β α _inst_2) (y : AddMonoidAlgebra.{u3, u4} β α _inst_2), Eq.{max (succ u3) (succ u2)} (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α₂) _x) (AddHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (HMul.hMul.{max u4 u3, max u4 u3, max u4 u3} (AddMonoidAlgebra.{u3, u4} β α _inst_2) (AddMonoidAlgebra.{u3, u4} β α _inst_2) (AddMonoidAlgebra.{u3, u4} β α _inst_2) (instHMul.{max u4 u3} (AddMonoidAlgebra.{u3, u4} β α _inst_2) (AddMonoidAlgebra.hasMul.{u3, u4} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u3 u2, max u3 u2, max u3 u2} (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (instHMul.{max u3 u2} (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.hasMul.{u3, u2} β α₂ _inst_2 _inst_4)) (AddMonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α₂) _x) (AddHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) x) (AddMonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α₂) _x) (AddHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) y))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.map_domain_mul AddMonoidAlgebra.mapDomain_mulₓ'. -/
 /-- Like `finsupp.map_domain_add`, but for the convolutive multiplication we define in this file -/
 theorem mapDomain_mul {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [Add α] [Add α₂]
     {F : Type _} [AddHomClass F α α₂] (f : F) (x y : AddMonoidAlgebra β α) :
@@ -1727,12 +1385,6 @@ section
 
 variable (k G)
 
-/- warning: add_monoid_algebra.of_magma -> AddMonoidAlgebra.ofMagma is a dubious translation:
-lean 3 declaration is
-  forall (k : Type.{u1}) (G : Type.{u2}) [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G], MulHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.hasMul.{u2} G _inst_2) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)
-but is expected to have type
-  forall (k : Type.{u1}) (G : Type.{u2}) [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G], MulHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mul.{u2} G _inst_2) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of_magma AddMonoidAlgebra.ofMagmaₓ'. -/
 /-- The embedding of an additive magma into its additive magma algebra. -/
 @[simps]
 def ofMagma [Add G] : Multiplicative G →ₙ* AddMonoidAlgebra k G
@@ -1759,54 +1411,24 @@ def of' : G → AddMonoidAlgebra k G := fun a => single a 1
 
 end
 
-/- warning: add_monoid_algebra.of_apply -> AddMonoidAlgebra.of_apply is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : Multiplicative.{u2} G), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (fun (_x : Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) => (Multiplicative.{u2} G) -> G) (Equiv.hasCoeToFun.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) a) (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : Multiplicative.{u2} G), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a) (AddMonoidAlgebra.single.{u1, u2} k ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Multiplicative.{u2} G) => G) a) _inst_1 (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Multiplicative.{u2} G) => G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) a) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of_apply AddMonoidAlgebra.of_applyₓ'. -/
 @[simp]
 theorem of_apply [AddZeroClass G] (a : Multiplicative G) : of k G a = single a.toAdd 1 :=
   rfl
 #align add_monoid_algebra.of_apply AddMonoidAlgebra.of_apply
 
-/- warning: add_monoid_algebra.of'_apply -> AddMonoidAlgebra.of'_apply is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] (a : G), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.of'.{u1, u2} k G _inst_1 a) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] (a : G), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.of'.{u1, u2} k G _inst_1 a) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 a (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of'_apply AddMonoidAlgebra.of'_applyₓ'. -/
 @[simp]
 theorem of'_apply (a : G) : of' k G a = single a 1 :=
   rfl
 #align add_monoid_algebra.of'_apply AddMonoidAlgebra.of'_apply
 
-/- warning: add_monoid_algebra.of'_eq_of -> AddMonoidAlgebra.of'_eq_of is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : G), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.of'.{u1, u2} k G _inst_1 a) (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a)
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : G), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.of'.{u1, u2} k G _inst_1 a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a)
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of'_eq_of AddMonoidAlgebra.of'_eq_ofₓ'. -/
 theorem of'_eq_of [AddZeroClass G] (a : G) : of' k G a = of k G a :=
   rfl
 #align add_monoid_algebra.of'_eq_of AddMonoidAlgebra.of'_eq_of
 
-/- warning: add_monoid_algebra.of_injective -> AddMonoidAlgebra.of_injective is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Nontrivial.{u1} k] [_inst_3 : AddZeroClass.{u2} G], Function.Injective.{succ u2, max (succ u2) (succ u1)} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_3))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Nontrivial.{u1} k] [_inst_3 : AddZeroClass.{u2} G], Function.Injective.{succ u2, max (succ u1) (succ u2)} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_3)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_3))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of_injective AddMonoidAlgebra.of_injectiveₓ'. -/
 theorem of_injective [Nontrivial k] [AddZeroClass G] : Function.Injective (of k G) := fun a b h =>
   by simpa using (single_eq_single_iff _ _ _ _).mp h
 #align add_monoid_algebra.of_injective AddMonoidAlgebra.of_injective
 
-/- warning: add_monoid_algebra.single_hom -> AddMonoidAlgebra.singleHom is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G], MonoidHom.{max u1 u2, max u2 u1} (Prod.{u1, u2} k (Multiplicative.{u2} G)) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Prod.mulOneClass.{u1, u2} k (Multiplicative.{u2} G) (MulZeroOneClass.toMulOneClass.{u1} k (NonAssocSemiring.toMulZeroOneClass.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G], MonoidHom.{max u2 u1, max u2 u1} (Prod.{u1, u2} k (Multiplicative.{u2} G)) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Prod.instMulOneClassProd.{u1, u2} k (Multiplicative.{u2} G) (MulZeroOneClass.toMulOneClass.{u1} k (NonAssocSemiring.toMulZeroOneClass.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.single_hom AddMonoidAlgebra.singleHomₓ'. -/
 /-- `finsupp.single` as a `monoid_hom` from the product type into the additive monoid algebra.
 
 Note the order of the elements of the product are reversed compared to the arguments of
@@ -1820,109 +1442,52 @@ def singleHom [AddZeroClass G] : k × Multiplicative G →* AddMonoidAlgebra k G
   map_mul' a b := single_mul_single.symm
 #align add_monoid_algebra.single_hom AddMonoidAlgebra.singleHom
 
-/- warning: add_monoid_algebra.mul_single_apply_aux -> AddMonoidAlgebra.mul_single_apply_aux is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G) (y : G) (z : G), (forall (a : G), Iff (Eq.{succ u2} G (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) a x) z) (Eq.{succ u2} G a y)) -> (Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r)) z) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f y) r))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G) (y : G) (z : G), (forall (a : G), Iff (Eq.{succ u2} G (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) a x) z) (Eq.{succ u2} G a y)) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) z) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) f (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x r)) z) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (instHMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f y) r))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mul_single_apply_aux AddMonoidAlgebra.mul_single_apply_auxₓ'. -/
 theorem mul_single_apply_aux [Add G] (f : AddMonoidAlgebra k G) (r : k) (x y z : G)
     (H : ∀ a, a + x = z ↔ a = y) : (f * single x r) z = f y * r :=
   @MonoidAlgebra.mul_single_apply_aux k (Multiplicative G) _ _ _ _ _ _ _ H
 #align add_monoid_algebra.mul_single_apply_aux AddMonoidAlgebra.mul_single_apply_aux
 
-/- warning: add_monoid_algebra.mul_single_zero_apply -> AddMonoidAlgebra.mul_single_zero_apply is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G), Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G _inst_2))) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G _inst_2)))) r)) x) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f x) r)
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G _inst_2))) f (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 (OfNat.ofNat.{u2} G 0 (Zero.toOfNat0.{u2} G (AddZeroClass.toZero.{u2} G _inst_2))) r)) x) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (instHMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f x) r)
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mul_single_zero_apply AddMonoidAlgebra.mul_single_zero_applyₓ'. -/
 theorem mul_single_zero_apply [AddZeroClass G] (f : AddMonoidAlgebra k G) (r : k) (x : G) :
     (f * single 0 r) x = f x * r :=
   f.mul_single_apply_aux r _ _ _ fun a => by rw [add_zero]
 #align add_monoid_algebra.mul_single_zero_apply AddMonoidAlgebra.mul_single_zero_apply
 
-/- warning: add_monoid_algebra.mul_single_apply_of_not_exists_add -> AddMonoidAlgebra.mul_single_apply_of_not_exists_add is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (r : k) {g : G} {g' : G} (x : AddMonoidAlgebra.{u1, u2} k G _inst_1), (Not (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G g' (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) d g)))) -> (Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) x (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) g r)) g') (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (r : k) {g : G} {g' : G} (x : AddMonoidAlgebra.{u1, u2} k G _inst_1), (Not (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G g' (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) d g)))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) x (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 g r)) g') (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mul_single_apply_of_not_exists_add AddMonoidAlgebra.mul_single_apply_of_not_exists_addₓ'. -/
 theorem mul_single_apply_of_not_exists_add [Add G] (r : k) {g g' : G} (x : AddMonoidAlgebra k G)
     (h : ¬∃ d, g' = d + g) : (x * Finsupp.single g r : AddMonoidAlgebra k G) g' = 0 :=
   @MonoidAlgebra.mul_single_apply_of_not_exists_mul k (Multiplicative G) _ _ _ _ _ _ h
 #align add_monoid_algebra.mul_single_apply_of_not_exists_add AddMonoidAlgebra.mul_single_apply_of_not_exists_add
 
-/- warning: add_monoid_algebra.single_mul_apply_aux -> AddMonoidAlgebra.single_mul_apply_aux is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G) (y : G) (z : G), (forall (a : G), Iff (Eq.{succ u2} G (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) x a) y) (Eq.{succ u2} G a z)) -> (Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r) f) y) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) r (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f z)))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G) (y : G) (z : G), (forall (a : G), Iff (Eq.{succ u2} G (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) x a) y) (Eq.{succ u2} G a z)) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x r) f) y) (HMul.hMul.{u1, u1, u1} k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) z) k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) r (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f z)))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.single_mul_apply_aux AddMonoidAlgebra.single_mul_apply_auxₓ'. -/
 theorem single_mul_apply_aux [Add G] (f : AddMonoidAlgebra k G) (r : k) (x y z : G)
     (H : ∀ a, x + a = y ↔ a = z) : (single x r * f : AddMonoidAlgebra k G) y = r * f z :=
   @MonoidAlgebra.single_mul_apply_aux k (Multiplicative G) _ _ _ _ _ _ _ H
 #align add_monoid_algebra.single_mul_apply_aux AddMonoidAlgebra.single_mul_apply_aux
 
-/- warning: add_monoid_algebra.single_zero_mul_apply -> AddMonoidAlgebra.single_zero_mul_apply is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G), Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G _inst_2))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G _inst_2)))) r) f) x) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) r (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f x))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G _inst_2))) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 (OfNat.ofNat.{u2} G 0 (Zero.toOfNat0.{u2} G (AddZeroClass.toZero.{u2} G _inst_2))) r) f) x) (HMul.hMul.{u1, u1, u1} k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) r (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f x))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.single_zero_mul_apply AddMonoidAlgebra.single_zero_mul_applyₓ'. -/
 theorem single_zero_mul_apply [AddZeroClass G] (f : AddMonoidAlgebra k G) (r : k) (x : G) :
     (single 0 r * f : AddMonoidAlgebra k G) x = r * f x :=
   f.single_mul_apply_aux r _ _ _ fun a => by rw [zero_add]
 #align add_monoid_algebra.single_zero_mul_apply AddMonoidAlgebra.single_zero_mul_apply
 
-/- warning: add_monoid_algebra.single_mul_apply_of_not_exists_add -> AddMonoidAlgebra.single_mul_apply_of_not_exists_add is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (r : k) {g : G} {g' : G} (x : AddMonoidAlgebra.{u1, u2} k G _inst_1), (Not (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G g' (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) g d)))) -> (Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) g r) x) g') (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (r : k) {g : G} {g' : G} (x : AddMonoidAlgebra.{u1, u2} k G _inst_1), (Not (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G g' (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) g d)))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 g r) x) g') (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.single_mul_apply_of_not_exists_add AddMonoidAlgebra.single_mul_apply_of_not_exists_addₓ'. -/
 theorem single_mul_apply_of_not_exists_add [Add G] (r : k) {g g' : G} (x : AddMonoidAlgebra k G)
     (h : ¬∃ d, g' = g + d) : (Finsupp.single g r * x : AddMonoidAlgebra k G) g' = 0 :=
   @MonoidAlgebra.single_mul_apply_of_not_exists_mul k (Multiplicative G) _ _ _ _ _ _ h
 #align add_monoid_algebra.single_mul_apply_of_not_exists_add AddMonoidAlgebra.single_mul_apply_of_not_exists_add
 
-/- warning: add_monoid_algebra.mul_single_apply -> AddMonoidAlgebra.mul_single_apply is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddGroup.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G) (y : G), Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2)))))) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r)) y) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f (HSub.hSub.{u2, u2, u2} G G G (instHSub.{u2} G (SubNegMonoid.toHasSub.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))) y x)) r)
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddGroup.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G) (y : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2)))))) f (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x r)) y) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HSub.hSub.{u2, u2, u2} G G G (instHSub.{u2} G (SubNegMonoid.toSub.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))) y x)) k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HSub.hSub.{u2, u2, u2} G G G (instHSub.{u2} G (SubNegMonoid.toSub.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))) y x)) (instHMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HSub.hSub.{u2, u2, u2} G G G (instHSub.{u2} G (SubNegMonoid.toSub.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))) y x)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HSub.hSub.{u2, u2, u2} G G G (instHSub.{u2} G (SubNegMonoid.toSub.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))) y x)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HSub.hSub.{u2, u2, u2} G G G (instHSub.{u2} G (SubNegMonoid.toSub.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))) y x)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HSub.hSub.{u2, u2, u2} G G G (instHSub.{u2} G (SubNegMonoid.toSub.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))) y x)) _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f (HSub.hSub.{u2, u2, u2} G G G (instHSub.{u2} G (SubNegMonoid.toSub.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))) y x)) r)
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mul_single_apply AddMonoidAlgebra.mul_single_applyₓ'. -/
 theorem mul_single_apply [AddGroup G] (f : AddMonoidAlgebra k G) (r : k) (x y : G) :
     (f * single x r) y = f (y - x) * r :=
   (sub_eq_add_neg y x).symm ▸ @MonoidAlgebra.mul_single_apply k (Multiplicative G) _ _ _ _ _ _
 #align add_monoid_algebra.mul_single_apply AddMonoidAlgebra.mul_single_apply
 
-/- warning: add_monoid_algebra.single_mul_apply -> AddMonoidAlgebra.single_mul_apply is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddGroup.{u2} G] (r : k) (x : G) (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (y : G), Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2)))))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r) f) y) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) r (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))))) (Neg.neg.{u2} G (SubNegMonoid.toHasNeg.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2)) x) y)))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddGroup.{u2} G] (r : k) (x : G) (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (y : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2)))))) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x r) f) y) (HMul.hMul.{u1, u1, u1} k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))))) (Neg.neg.{u2} G (NegZeroClass.toNeg.{u2} G (SubNegZeroMonoid.toNegZeroClass.{u2} G (SubtractionMonoid.toSubNegZeroMonoid.{u2} G (AddGroup.toSubtractionMonoid.{u2} G _inst_2)))) x) y)) k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) r (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))))) (Neg.neg.{u2} G (NegZeroClass.toNeg.{u2} G (SubNegZeroMonoid.toNegZeroClass.{u2} G (SubtractionMonoid.toSubNegZeroMonoid.{u2} G (AddGroup.toSubtractionMonoid.{u2} G _inst_2)))) x) y)))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.single_mul_apply AddMonoidAlgebra.single_mul_applyₓ'. -/
 theorem single_mul_apply [AddGroup G] (r : k) (x : G) (f : AddMonoidAlgebra k G) (y : G) :
     (single x r * f : AddMonoidAlgebra k G) y = r * f (-x + y) :=
   @MonoidAlgebra.single_mul_apply k (Multiplicative G) _ _ _ _ _ _
 #align add_monoid_algebra.single_mul_apply AddMonoidAlgebra.single_mul_apply
 
-/- warning: add_monoid_algebra.lift_nc_smul -> AddMonoidAlgebra.liftNC_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_smul AddMonoidAlgebra.liftNC_smulₓ'. -/
 theorem liftNC_smul {R : Type _} [AddZeroClass G] [Semiring R] (f : k →+* R)
     (g : Multiplicative G →* R) (c : k) (φ : MonoidAlgebra k G) :
     liftNC (f : k →+ R) g (c • φ) = f c * liftNC (f : k →+ R) g φ :=
   @MonoidAlgebra.liftNC_smul k (Multiplicative G) _ _ _ _ f g c φ
 #align add_monoid_algebra.lift_nc_smul AddMonoidAlgebra.liftNC_smul
 
-/- warning: add_monoid_algebra.induction_on -> AddMonoidAlgebra.induction_on is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {p : (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (fun (_x : Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) => G -> (Multiplicative.{u2} G)) (Equiv.hasCoeToFun.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) g))) -> (forall (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toHasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (SMul.smul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) r f))) -> (p f)
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {p : (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : G) => Multiplicative.{u2} G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) g))) -> (forall (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r f))) -> (p f)
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.induction_on AddMonoidAlgebra.induction_onₓ'. -/
 theorem induction_on [AddMonoid G] {p : AddMonoidAlgebra k G → Prop} (f : AddMonoidAlgebra k G)
     (hM : ∀ g, p (of k G (Multiplicative.ofAdd g)))
     (hadd : ∀ f g : AddMonoidAlgebra k G, p f → p g → p (f + g))
@@ -1963,12 +1528,6 @@ but for now we just contruct the ring isomorphisms using `ring_equiv.refl _`.
 -/
 
 
-/- warning: add_monoid_algebra.to_multiplicative -> AddMonoidAlgebra.toMultiplicative is a dubious translation:
-lean 3 declaration is
-  forall (k : Type.{u1}) (G : Type.{u2}) [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G], RingEquiv.{max u2 u1, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k (Multiplicative.{u2} G) _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2) (Distrib.toHasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidAlgebra.mul.{u1, u2} k (Multiplicative.{u2} G) _inst_1 (Multiplicative.hasMul.{u2} G _inst_2)) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k (Multiplicative.{u2} G) _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k (Multiplicative.{u2} G) _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k (Multiplicative.{u2} G) _inst_1 (Multiplicative.hasMul.{u2} G _inst_2))))
-but is expected to have type
-  forall (k : Type.{u1}) (G : Type.{u2}) [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G], RingEquiv.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k (Multiplicative.{u2} G) _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2) (MonoidAlgebra.mul.{u1, u2} k (Multiplicative.{u2} G) _inst_1 (Multiplicative.mul.{u2} G _inst_2)) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k (Multiplicative.{u2} G) _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k (Multiplicative.{u2} G) _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k (Multiplicative.{u2} G) _inst_1 (Multiplicative.mul.{u2} G _inst_2))))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.to_multiplicative AddMonoidAlgebra.toMultiplicativeₓ'. -/
 /-- The equivalence between `add_monoid_algebra` and `monoid_algebra` in terms of
 `multiplicative` -/
 protected def AddMonoidAlgebra.toMultiplicative [Semiring k] [Add G] :
@@ -1983,12 +1542,6 @@ protected def AddMonoidAlgebra.toMultiplicative [Semiring k] [Add G] :
       convert MonoidAlgebra.mapDomain_mul (MulHom.id (Multiplicative G)) _ _ }
 #align add_monoid_algebra.to_multiplicative AddMonoidAlgebra.toMultiplicative
 
-/- warning: monoid_algebra.to_additive -> MonoidAlgebra.toAdditive is a dubious translation:
-lean 3 declaration is
-  forall (k : Type.{u1}) (G : Type.{u2}) [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G], RingEquiv.{max u1 u2, max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k (Additive.{u2} G) _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (AddMonoidAlgebra.hasMul.{u1, u2} k (Additive.{u2} G) _inst_1 (Additive.hasAdd.{u2} G _inst_2)) (Distrib.toHasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k (Additive.{u2} G) _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k (Additive.{u2} G) _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k (Additive.{u2} G) _inst_1 (Additive.hasAdd.{u2} G _inst_2))))
-but is expected to have type
-  forall (k : Type.{u1}) (G : Type.{u2}) [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G], RingEquiv.{max u2 u1, max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k (Additive.{u2} G) _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2) (AddMonoidAlgebra.hasMul.{u1, u2} k (Additive.{u2} G) _inst_1 (Additive.add.{u2} G _inst_2)) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k (Additive.{u2} G) _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k (Additive.{u2} G) _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k (Additive.{u2} G) _inst_1 (Additive.add.{u2} G _inst_2))))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.to_additive MonoidAlgebra.toAdditiveₓ'. -/
 /-- The equivalence between `monoid_algebra` and `add_monoid_algebra` in terms of `additive` -/
 protected def MonoidAlgebra.toAdditive [Semiring k] [Mul G] :
     MonoidAlgebra k G ≃+* AddMonoidAlgebra k (Additive G) :=
@@ -2012,23 +1565,11 @@ section NonUnitalNonAssocAlgebra
 
 variable (k) [Semiring k] [DistribSMul R k] [Add G]
 
-/- warning: add_monoid_algebra.is_scalar_tower_self -> AddMonoidAlgebra.isScalarTower_self is a dubious translation:
-lean 3 declaration is
-  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Add.{u2} G] [_inst_4 : IsScalarTower.{u3, u1, u1} R k k (SMulZeroClass.toHasSmul.{u3, u1} R k (AddZeroClass.toHasZero.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)) (Mul.toSMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (SMulZeroClass.toHasSmul.{u3, u1} R k (AddZeroClass.toHasZero.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))], IsScalarTower.{u3, max u2 u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))) (Mul.toSMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_3)) (SMulZeroClass.toHasSmul.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)))
-but is expected to have type
-  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Add.{u2} G] [_inst_4 : IsScalarTower.{u3, u1, u1} R k k (SMulZeroClass.toSMul.{u3, u1} R k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)) (SMulZeroClass.toSMul.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (SMulZeroClass.toSMul.{u3, u1} R k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))], IsScalarTower.{u3, max u2 u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u3, max u1 u2} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))) (SMulZeroClass.toSMul.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (SMulWithZero.toSMulZeroClass.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toSMulWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))))) (SMulZeroClass.toSMul.{u3, max u1 u2} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.is_scalar_tower_self AddMonoidAlgebra.isScalarTower_selfₓ'. -/
 instance isScalarTower_self [IsScalarTower R k k] :
     IsScalarTower R (AddMonoidAlgebra k G) (AddMonoidAlgebra k G) :=
   @MonoidAlgebra.isScalarTower_self k (Multiplicative G) R _ _ _ _
 #align add_monoid_algebra.is_scalar_tower_self AddMonoidAlgebra.isScalarTower_self
 
-/- warning: add_monoid_algebra.smul_comm_class_self -> AddMonoidAlgebra.sMulCommClass_self is a dubious translation:
-lean 3 declaration is
-  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Add.{u2} G] [_inst_4 : SMulCommClass.{u3, u1, u1} R k k (SMulZeroClass.toHasSmul.{u3, u1} R k (AddZeroClass.toHasZero.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)) (Mul.toSMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))], SMulCommClass.{u3, max u2 u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))) (Mul.toSMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_3))
-but is expected to have type
-  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Add.{u2} G] [_inst_4 : SMulCommClass.{u3, u1, u1} R k k (SMulZeroClass.toSMul.{u3, u1} R k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)) (SMulZeroClass.toSMul.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))], SMulCommClass.{u3, max u2 u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u3, max u1 u2} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))) (SMulZeroClass.toSMul.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (SMulWithZero.toSMulZeroClass.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toSMulWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.smul_comm_class_self AddMonoidAlgebra.sMulCommClass_selfₓ'. -/
 /-- Note that if `k` is a `comm_semiring` then we have `smul_comm_class k k k` and so we can take
 `R = k` in the below. In other words, if the coefficients are commutative amongst themselves, they
 also commute with the algebra multiplication. -/
@@ -2037,12 +1578,6 @@ instance sMulCommClass_self [SMulCommClass R k k] :
   @MonoidAlgebra.sMulCommClass_self k (Multiplicative G) R _ _ _ _
 #align add_monoid_algebra.smul_comm_class_self AddMonoidAlgebra.sMulCommClass_self
 
-/- warning: add_monoid_algebra.smul_comm_class_symm_self -> AddMonoidAlgebra.sMulCommClass_symm_self is a dubious translation:
-lean 3 declaration is
-  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Add.{u2} G] [_inst_4 : SMulCommClass.{u1, u3, u1} k R k (Mul.toSMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (SMulZeroClass.toHasSmul.{u3, u1} R k (AddZeroClass.toHasZero.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))], SMulCommClass.{max u2 u1, u3, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Mul.toSMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_3)) (SMulZeroClass.toHasSmul.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)))
-but is expected to have type
-  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Add.{u2} G] [_inst_4 : SMulCommClass.{u1, u3, u1} k R k (SMulZeroClass.toSMul.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (SMulZeroClass.toSMul.{u3, u1} R k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))], SMulCommClass.{max u2 u1, u3, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (SMulWithZero.toSMulZeroClass.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toSMulWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))))) (SMulZeroClass.toSMul.{u3, max u1 u2} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.smul_comm_class_symm_self AddMonoidAlgebra.sMulCommClass_symm_selfₓ'. -/
 instance sMulCommClass_symm_self [SMulCommClass k R k] :
     SMulCommClass (AddMonoidAlgebra k G) R (AddMonoidAlgebra k G) :=
   @MonoidAlgebra.sMulCommClass_symm_self k (Multiplicative G) R _ _ _ _
@@ -2050,9 +1585,6 @@ instance sMulCommClass_symm_self [SMulCommClass k R k] :
 
 variable {A : Type u₃} [NonUnitalNonAssocSemiring A]
 
-/- warning: add_monoid_algebra.non_unital_alg_hom_ext -> AddMonoidAlgebra.nonUnitalAlgHom_ext is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.non_unital_alg_hom_ext AddMonoidAlgebra.nonUnitalAlgHom_extₓ'. -/
 /-- A non_unital `k`-algebra homomorphism from `add_monoid_algebra k G` is uniquely defined by its
 values on the functions `single a 1`. -/
 theorem nonUnitalAlgHom_ext [DistribMulAction k A] {φ₁ φ₂ : AddMonoidAlgebra k G →ₙₐ[k] A}
@@ -2060,12 +1592,6 @@ theorem nonUnitalAlgHom_ext [DistribMulAction k A] {φ₁ φ₂ : AddMonoidAlgeb
   @MonoidAlgebra.nonUnitalAlgHom_ext k (Multiplicative G) _ _ _ _ _ φ₁ φ₂ h
 #align add_monoid_algebra.non_unital_alg_hom_ext AddMonoidAlgebra.nonUnitalAlgHom_ext
 
-/- warning: add_monoid_algebra.non_unital_alg_hom_ext' -> AddMonoidAlgebra.nonUnitalAlgHom_ext' is a dubious translation:
-lean 3 declaration is
-  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Add.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (Eq.{max (succ u3) (succ u2)} (MulHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.hasMul.{u2} G _inst_3) (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4))) (MulHom.comp.{u2, max u2 u1, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (Multiplicative.hasMul.{u2} G _inst_3) (Distrib.toHasMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4)) (NonUnitalAlgHom.toMulHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5 φ₁) (AddMonoidAlgebra.ofMagma.{u1, u2} k G _inst_1 _inst_3)) (MulHom.comp.{u2, max u2 u1, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (Multiplicative.hasMul.{u2} G _inst_3) (Distrib.toHasMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4)) (NonUnitalAlgHom.toMulHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5 φ₂) (AddMonoidAlgebra.ofMagma.{u1, u2} k G _inst_1 _inst_3))) -> (Eq.{max (succ (max u2 u1)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
-but is expected to have type
-  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Add.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (Eq.{max (succ u2) (succ u3)} (MulHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mul.{u2} G _inst_3) (NonUnitalNonAssocSemiring.toMul.{u3} A _inst_4)) (MulHom.comp.{u2, max u1 u2, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (Multiplicative.mul.{u2} G _inst_3) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)) (NonUnitalNonAssocSemiring.toMul.{u3} A _inst_4) (NonUnitalAlgHom.toMulHom.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5 φ₁) (AddMonoidAlgebra.ofMagma.{u1, u2} k G _inst_1 _inst_3)) (MulHom.comp.{u2, max u1 u2, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (Multiplicative.mul.{u2} G _inst_3) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)) (NonUnitalNonAssocSemiring.toMul.{u3} A _inst_4) (NonUnitalAlgHom.toMulHom.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5 φ₂) (AddMonoidAlgebra.ofMagma.{u1, u2} k G _inst_1 _inst_3))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.non_unital_alg_hom_ext' AddMonoidAlgebra.nonUnitalAlgHom_ext'ₓ'. -/
 /-- See note [partially-applied ext lemmas]. -/
 @[ext]
 theorem nonUnitalAlgHom_ext' [DistribMulAction k A] {φ₁ φ₂ : AddMonoidAlgebra k G →ₙₐ[k] A}
@@ -2073,12 +1599,6 @@ theorem nonUnitalAlgHom_ext' [DistribMulAction k A] {φ₁ φ₂ : AddMonoidAlge
   @MonoidAlgebra.nonUnitalAlgHom_ext' k (Multiplicative G) _ _ _ _ _ φ₁ φ₂ h
 #align add_monoid_algebra.non_unital_alg_hom_ext' AddMonoidAlgebra.nonUnitalAlgHom_ext'
 
-/- warning: add_monoid_algebra.lift_magma -> AddMonoidAlgebra.liftMagma is a dubious translation:
-lean 3 declaration is
-  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Add.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : Module.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)] [_inst_6 : IsScalarTower.{u1, u3, u3} k A A (SMulZeroClass.toHasSmul.{u1, u3} k A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} k A (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4))) (SMulZeroClass.toHasSmul.{u1, u3} k A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} k A (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5))))] [_inst_7 : SMulCommClass.{u1, u3, u3} k A A (SMulZeroClass.toHasSmul.{u1, u3} k A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} k A (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4)))], Equiv.{max (succ u3) (succ u2), max (succ (max u2 u1)) (succ u3)} (MulHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.hasMul.{u2} G _inst_3) (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4))) (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 (Module.toDistribMulAction.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5))
-but is expected to have type
-  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Add.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : Module.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)] [_inst_6 : IsScalarTower.{u1, u3, u3} k A A (SMulZeroClass.toSMul.{u1, u3} k A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u1, u3} k A (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)))) (SMulZeroClass.toSMul.{u1, u3} k A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u1, u3} k A (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5))))] [_inst_7 : SMulCommClass.{u1, u3, u3} k A A (SMulZeroClass.toSMul.{u1, u3} k A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u1, u3} k A (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4))))], Equiv.{max (succ u3) (succ u2), max (succ u3) (succ (max u2 u1))} (MulHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mul.{u2} G _inst_3) (NonUnitalNonAssocSemiring.toMul.{u3} A _inst_4)) (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 (Module.toDistribMulAction.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_magma AddMonoidAlgebra.liftMagmaₓ'. -/
 /-- The functor `G ↦ add_monoid_algebra k G`, from the category of magmas to the category of
 non-unital, non-associative algebras over `k` is adjoint to the forgetful functor in the other
 direction. -/
@@ -2115,9 +1635,6 @@ def singleZeroRingHom [Semiring k] [AddMonoid G] : k →+* AddMonoidAlgebra k G
 #align add_monoid_algebra.single_zero_ring_hom AddMonoidAlgebra.singleZeroRingHom
 -/
 
-/- warning: add_monoid_algebra.ring_hom_ext -> AddMonoidAlgebra.ringHom_ext is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.ring_hom_ext AddMonoidAlgebra.ringHom_extₓ'. -/
 /-- If two ring homomorphisms from `add_monoid_algebra k G` are equal on all `single a 1`
 and `single 0 b`, then they are equal. -/
 theorem ringHom_ext {R} [Semiring k] [AddMonoid G] [Semiring R] {f g : AddMonoidAlgebra k G →+* R}
@@ -2126,9 +1643,6 @@ theorem ringHom_ext {R} [Semiring k] [AddMonoid G] [Semiring R] {f g : AddMonoid
   @MonoidAlgebra.ringHom_ext k (Multiplicative G) R _ _ _ _ _ h₀ h_of
 #align add_monoid_algebra.ring_hom_ext AddMonoidAlgebra.ringHom_ext
 
-/- warning: add_monoid_algebra.ring_hom_ext' -> AddMonoidAlgebra.ringHom_ext' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.ring_hom_ext' AddMonoidAlgebra.ringHom_ext'ₓ'. -/
 /-- If two ring homomorphisms from `add_monoid_algebra k G` are equal on all `single a 1`
 and `single 0 b`, then they are equal.
 
@@ -2149,12 +1663,6 @@ open Finsupp MulOpposite
 
 variable [Semiring k]
 
-/- warning: add_monoid_algebra.op_ring_equiv -> AddMonoidAlgebra.opRingEquiv is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddCommMonoid.{u2} G], RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.hasMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (MulOpposite.hasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Finsupp.add.{u2, u1} G k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1) (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (Finsupp.add.{u2, u1} G (MulOpposite.{u1} k) (MulOpposite.addZeroClass.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddCommMonoid.{u2} G], RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.mul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (MulOpposite.add.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.op_ring_equiv AddMonoidAlgebra.opRingEquivₓ'. -/
 /-- The opposite of an `add_monoid_algebra R I` is ring equivalent to
 the `add_monoid_algebra Rᵐᵒᵖ I` over the opposite ring, taking elements to their opposite. -/
 @[simps (config := { simpRhs := true })]
@@ -2210,12 +1718,6 @@ def singleZeroAlgHom [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
 #align add_monoid_algebra.single_zero_alg_hom AddMonoidAlgebra.singleZeroAlgHom
 -/
 
-/- warning: add_monoid_algebra.coe_algebra_map -> AddMonoidAlgebra.coe_algebraMap is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : CommSemiring.{u3} R] [_inst_2 : Semiring.{u1} k] [_inst_3 : Algebra.{u3, u1} R k _inst_1 _inst_2] [_inst_4 : AddMonoid.{u2} G], Eq.{max (succ u3) (succ u2) (succ u1)} ((fun (_x : RingHom.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) => R -> (AddMonoidAlgebra.{u1, u2} k G _inst_2)) (algebraMap.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u1, u2, u3} k G R _inst_1 _inst_2 _inst_3 _inst_4))) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ u3) (succ (max u2 u1))} (RingHom.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) (fun (_x : RingHom.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) => R -> (AddMonoidAlgebra.{u1, u2} k G _inst_2)) (RingHom.hasCoeToFun.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) (algebraMap.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u1, u2, u3} k G R _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u3, succ u1, max (succ u2) (succ u1)} R k (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_4)))))) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} R k (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} k _inst_2)) (fun (_x : RingHom.{u3, u1} R k (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} k _inst_2)) => R -> k) (RingHom.hasCoeToFun.{u3, u1} R k (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} k _inst_2)) (algebraMap.{u3, u1} R k _inst_1 _inst_2 _inst_3)))
-but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Semiring.{u2} k] [_inst_3 : Algebra.{u1, u2} R k _inst_1 _inst_2] [_inst_4 : AddMonoid.{u3} G], Eq.{max (max (succ u2) (succ u3)) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => AddMonoidAlgebra.{u2, u3} k G _inst_2) a) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u1, max (succ u2) (succ u3)} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => AddMonoidAlgebra.{u2, u3} k G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u1, max u2 u3} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)))))) (algebraMap.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u2, u3, u1} k G R _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u1, succ u2, max (succ u3) (succ u2)} R k (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.single.{u2, u3} k G _inst_2 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_4)))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => k) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2))))) (algebraMap.{u1, u2} R k _inst_1 _inst_2 _inst_3)))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.coe_algebra_map AddMonoidAlgebra.coe_algebraMapₓ'. -/
 @[simp]
 theorem coe_algebraMap [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
     (algebraMap R (AddMonoidAlgebra k G) : R → AddMonoidAlgebra k G) = single 0 ∘ algebraMap R k :=
@@ -2230,9 +1732,6 @@ variable {k G} [CommSemiring k] [AddMonoid G]
 
 variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [Algebra k B]
 
-/- warning: add_monoid_algebra.lift_nc_alg_hom -> AddMonoidAlgebra.liftNCAlgHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_alg_hom AddMonoidAlgebra.liftNCAlgHomₓ'. -/
 /-- `lift_nc_ring_hom` as a `alg_hom`, for when `f` is an `alg_hom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : Multiplicative G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
     AddMonoidAlgebra A G →ₐ[k] B :=
@@ -2252,9 +1751,6 @@ theorem algHom_ext ⦃φ₁ φ₂ : AddMonoidAlgebra k G →ₐ[k] A⦄
 #align add_monoid_algebra.alg_hom_ext AddMonoidAlgebra.algHom_ext
 -/
 
-/- warning: add_monoid_algebra.alg_hom_ext' -> AddMonoidAlgebra.algHom_ext' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.alg_hom_ext' AddMonoidAlgebra.algHom_ext'ₓ'. -/
 /-- See note [partially-applied ext lemmas]. -/
 @[ext]
 theorem algHom_ext' ⦃φ₁ φ₂ : AddMonoidAlgebra k G →ₐ[k] A⦄
@@ -2304,9 +1800,6 @@ theorem lift_def (F : Multiplicative G →* A) :
 #align add_monoid_algebra.lift_def AddMonoidAlgebra.lift_def
 -/
 
-/- warning: add_monoid_algebra.lift_symm_apply -> AddMonoidAlgebra.lift_symm_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_symm_apply AddMonoidAlgebra.lift_symm_applyₓ'. -/
 @[simp]
 theorem lift_symm_apply (F : AddMonoidAlgebra k G →ₐ[k] A) (x : Multiplicative G) :
     (lift k G A).symm F x = F (single x.toAdd 1) :=
@@ -2362,12 +1855,6 @@ universe ui
 
 variable {ι : Type ui}
 
-/- warning: add_monoid_algebra.prod_single -> AddMonoidAlgebra.prod_single is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {ι : Type.{u3}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddCommMonoid.{u2} G] {s : Finset.{u3} ι} {a : ι -> G} {b : ι -> k}, Eq.{succ (max u2 u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finset.prod.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) ι (CommSemiring.toCommMonoid.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (AddMonoidAlgebra.commSemiring.{u1, u2} k G _inst_1 _inst_2)) s (fun (i : ι) => Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (a i) (b i))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (Finset.sum.{u2, u3} G ι _inst_2 s (fun (i : ι) => a i)) (Finset.prod.{u1, u3} k ι (CommSemiring.toCommMonoid.{u1} k _inst_1) s (fun (i : ι) => b i)))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} {ι : Type.{u3}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddCommMonoid.{u2} G] {s : Finset.{u3} ι} {a : ι -> G} {b : ι -> k}, Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Finset.prod.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) ι (CommSemiring.toCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.commSemiring.{u1, u2} k G _inst_1 _inst_2)) s (fun (i : ι) => AddMonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (a i) (b i))) (AddMonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Finset.sum.{u2, u3} G ι _inst_2 s (fun (i : ι) => a i)) (Finset.prod.{u1, u3} k ι (CommSemiring.toCommMonoid.{u1} k _inst_1) s (fun (i : ι) => b i)))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.prod_single AddMonoidAlgebra.prod_singleₓ'. -/
 theorem prod_single [CommSemiring k] [AddCommMonoid G] {s : Finset ι} {a : ι → G} {b : ι → k} :
     (∏ i in s, single (a i) (b i)) = single (∑ i in s, a i) (∏ i in s, b i) :=
   Finset.cons_induction_on s rfl fun a s has ih => by
@@ -2376,9 +1863,6 @@ theorem prod_single [CommSemiring k] [AddCommMonoid G] {s : Finset ι} {a : ι 
 
 end
 
-/- warning: add_monoid_algebra.map_domain_algebra_map -> AddMonoidAlgebra.mapDomain_algebraMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.map_domain_algebra_map AddMonoidAlgebra.mapDomain_algebraMapₓ'. -/
 theorem mapDomain_algebraMap {A H F : Type _} [CommSemiring k] [Semiring A] [Algebra k A]
     [AddMonoid G] [AddMonoid H] [AddMonoidHomClass F G H] (f : F) (r : k) :
     mapDomain f (algebraMap k (AddMonoidAlgebra A G) r) = algebraMap k (AddMonoidAlgebra A H) r :=
Diff
@@ -419,11 +419,7 @@ theorem mul_apply_antidiagonal [Mul G] (f g : MonoidAlgebra k G) (x : G) (s : Fi
         _ = ∑ p in (f.support ×ˢ g.support).filterₓ fun p : G × G => p.1 * p.2 = x, f p.1 * g p.2 :=
           (Finset.sum_filter _ _).symm
         _ = ∑ p in s.filter fun p : G × G => p.1 ∈ f.support ∧ p.2 ∈ g.support, f p.1 * g p.2 :=
-          (sum_congr
-            (by
-              ext
-              simp only [mem_filter, mem_product, hs, and_comm'])
-            fun _ _ => rfl)
+          (sum_congr (by ext; simp only [mem_filter, mem_product, hs, and_comm']) fun _ _ => rfl)
         _ = ∑ p in s, f p.1 * g p.2 :=
           sum_subset (filter_subset _ _) fun p hps hp =>
             by
@@ -456,9 +452,7 @@ Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_
 @[simp]
 theorem single_pow [Monoid G] {a : G} {b : k} :
     ∀ n : ℕ, (single a b : MonoidAlgebra k G) ^ n = single (a ^ n) (b ^ n)
-  | 0 => by
-    simp only [pow_zero]
-    rfl
+  | 0 => by simp only [pow_zero]; rfl
   | n + 1 => by simp only [pow_succ, single_pow n, single_mul_single]
 #align monoid_algebra.single_pow MonoidAlgebra.single_pow
 
@@ -729,9 +723,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.smul_comm_class_symm_self MonoidAlgebra.sMulCommClass_symm_selfₓ'. -/
 instance sMulCommClass_symm_self [SMulCommClass k R k] :
     SMulCommClass (MonoidAlgebra k G) R (MonoidAlgebra k G) :=
-  ⟨fun t a b => by
-    haveI := SMulCommClass.symm k R k
-    rw [← smul_comm]⟩
+  ⟨fun t a b => by haveI := SMulCommClass.symm k R k; rw [← smul_comm]⟩
 #align monoid_algebra.smul_comm_class_symm_self MonoidAlgebra.sMulCommClass_symm_self
 
 variable {A : Type u₃} [NonUnitalNonAssocSemiring A]
@@ -781,27 +773,19 @@ def liftMagma [Module k A] [IsScalarTower k A A] [SMulCommClass k A A] :
       map_smul' := fun t' a => by
         rw [Finsupp.smul_sum, sum_smul_index']
         · simp_rw [smul_assoc]
-        · intro m
-          exact zero_smul k (f m)
+        · intro m; exact zero_smul k (f m)
       map_mul' := fun a₁ a₂ => by
         let g : G → k → A := fun m t => t • f m
-        have h₁ : ∀ m, g m 0 = 0 := by
-          intros
-          exact zero_smul k (f m)
-        have h₂ : ∀ (m) (t₁ t₂ : k), g m (t₁ + t₂) = g m t₁ + g m t₂ :=
-          by
-          intros
-          rw [← add_smul]
+        have h₁ : ∀ m, g m 0 = 0 := by intros ; exact zero_smul k (f m)
+        have h₂ : ∀ (m) (t₁ t₂ : k), g m (t₁ + t₂) = g m t₁ + g m t₂ := by intros ; rw [← add_smul]
         simp_rw [Finsupp.mul_sum, Finsupp.sum_mul, smul_mul_smul, ← f.map_mul, mul_def,
           sum_comm a₂ a₁, sum_sum_index h₁ h₂, sum_single_index (h₁ _)] }
   invFun F := F.toMulHom.comp (ofMagma k G)
-  left_inv f := by
-    ext m
+  left_inv f := by ext m;
     simp only [NonUnitalAlgHom.coe_mk, of_magma_apply, NonUnitalAlgHom.toMulHom_eq_coe,
       sum_single_index, Function.comp_apply, one_smul, zero_smul, MulHom.coe_comp,
       NonUnitalAlgHom.coe_to_mulHom]
-  right_inv F := by
-    ext m
+  right_inv F := by ext m;
     simp only [NonUnitalAlgHom.coe_mk, of_magma_apply, NonUnitalAlgHom.toMulHom_eq_coe,
       sum_single_index, Function.comp_apply, one_smul, zero_smul, MulHom.coe_comp,
       NonUnitalAlgHom.coe_to_mulHom]
@@ -823,8 +807,7 @@ but is expected to have type
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (r : k) (f : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)), Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toMul.{u2} G _inst_2))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G (MulOneClass.toOne.{u2} G _inst_2))) r) f) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toMul.{u2} G _inst_2))) f (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G (MulOneClass.toOne.{u2} G _inst_2))) r))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_one_comm MonoidAlgebra.single_one_commₓ'. -/
 theorem single_one_comm [CommSemiring k] [MulOneClass G] (r : k) (f : MonoidAlgebra k G) :
-    single 1 r * f = f * single 1 r := by
-  ext
+    single 1 r * f = f * single 1 r := by ext;
   rw [single_one_mul_apply, mul_single_one_apply, mul_comm]
 #align monoid_algebra.single_one_comm MonoidAlgebra.single_one_comm
 
@@ -893,11 +876,8 @@ instance {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G] :
     singleOneRingHom.comp
       (algebraMap k
         A) with
-    smul_def' := fun r a => by
-      ext
-      simp [single_one_mul_apply, Algebra.smul_def, Pi.smul_apply]
-    commutes' := fun r f => by
-      ext
+    smul_def' := fun r a => by ext; simp [single_one_mul_apply, Algebra.smul_def, Pi.smul_apply]
+    commutes' := fun r f => by ext;
       simp [single_one_mul_apply, mul_single_one_apply, Algebra.commutes] }
 
 #print MonoidAlgebra.singleOneAlgHom /-
@@ -905,11 +885,7 @@ instance {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G] :
 @[simps]
 def singleOneAlgHom {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G] :
     A →ₐ[k] MonoidAlgebra A G :=
-  { singleOneRingHom with
-    commutes' := fun r => by
-      ext
-      simp
-      rfl }
+  { singleOneRingHom with commutes' := fun r => by ext; simp; rfl }
 #align monoid_algebra.single_one_alg_hom MonoidAlgebra.singleOneAlgHom
 -/
 
@@ -1007,12 +983,8 @@ def lift : (G →* A) ≃ (MonoidAlgebra k G →ₐ[k] A)
     where
   invFun f := (f : MonoidAlgebra k G →* A).comp (of k G)
   toFun F := liftNCAlgHom (Algebra.ofId k A) F fun _ _ => Algebra.commutes _ _
-  left_inv f := by
-    ext
-    simp [lift_nc_alg_hom, lift_nc_ring_hom]
-  right_inv F := by
-    ext
-    simp [lift_nc_alg_hom, lift_nc_ring_hom]
+  left_inv f := by ext; simp [lift_nc_alg_hom, lift_nc_ring_hom]
+  right_inv F := by ext; simp [lift_nc_alg_hom, lift_nc_ring_hom]
 #align monoid_algebra.lift MonoidAlgebra.lift
 -/
 
@@ -1438,14 +1410,8 @@ instance : NonUnitalNonAssocSemiring (AddMonoidAlgebra k G) :=
     zero_mul := fun f => by simp only [mul_def, sum_zero_index]
     mul_zero := fun f => by simp only [mul_def, sum_zero_index, sum_zero]
     nsmul := fun n f => n • f
-    nsmul_zero := by
-      intros
-      ext
-      simp [-nsmul_eq_mul, add_smul]
-    nsmul_succ := by
-      intros
-      ext
-      simp [-nsmul_eq_mul, Nat.succ_eq_one_add, add_smul] }
+    nsmul_zero := by intros ; ext; simp [-nsmul_eq_mul, add_smul]
+    nsmul_succ := by intros ; ext; simp [-nsmul_eq_mul, Nat.succ_eq_one_add, add_smul] }
 
 variable [Semiring R]
 
@@ -1714,9 +1680,7 @@ Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.sin
 -- instead of relying on `finsupp.single`.
 theorem single_pow [AddMonoid G] {a : G} {b : k} :
     ∀ n : ℕ, (single a b ^ n : AddMonoidAlgebra k G) = single (n • a) (b ^ n)
-  | 0 => by
-    simp only [pow_zero, zero_nsmul]
-    rfl
+  | 0 => by simp only [pow_zero, zero_nsmul]; rfl
   | n + 1 => by
     rw [pow_succ, pow_succ, single_pow n, single_mul_single, add_comm, add_nsmul, one_nsmul]
 #align add_monoid_algebra.single_pow AddMonoidAlgebra.single_pow
@@ -2233,11 +2197,8 @@ instance [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
     singleZeroRingHom.comp
       (algebraMap R
         k) with
-    smul_def' := fun r a => by
-      ext
-      simp [single_zero_mul_apply, Algebra.smul_def, Pi.smul_apply]
-    commutes' := fun r f => by
-      ext
+    smul_def' := fun r a => by ext; simp [single_zero_mul_apply, Algebra.smul_def, Pi.smul_apply]
+    commutes' := fun r f => by ext;
       simp [single_zero_mul_apply, mul_single_zero_apply, Algebra.commutes] }
 
 #print AddMonoidAlgebra.singleZeroAlgHom /-
@@ -2245,11 +2206,7 @@ instance [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
 @[simps]
 def singleZeroAlgHom [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
     k →ₐ[R] AddMonoidAlgebra k G :=
-  { singleZeroRingHom with
-    commutes' := fun r => by
-      ext
-      simp
-      rfl }
+  { singleZeroRingHom with commutes' := fun r => by ext; simp; rfl }
 #align add_monoid_algebra.single_zero_alg_hom AddMonoidAlgebra.singleZeroAlgHom
 -/
 
Diff
@@ -110,10 +110,7 @@ def liftNC (f : k →+ R) (g : G → R) : MonoidAlgebra k G →+ R :=
 #align monoid_algebra.lift_nc MonoidAlgebra.liftNC
 
 /- warning: monoid_algebra.lift_nc_single -> MonoidAlgebra.liftNC_single is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : NonUnitalNonAssocSemiring.{u3} R] (f : AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (g : G -> R) (a : G) (b : k), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 _inst_2 f g) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a b)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R _inst_2))) (coeFn.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (fun (_x : AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) => k -> R) (AddMonoidHom.hasCoeToFun.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) f b) (g a))
-but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : NonUnitalNonAssocSemiring.{u1} R] (f : AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (g : G -> R) (a : G) (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 _inst_2 f g) (MonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddZeroClass.toAdd.{u2} k (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) f b) (g a))
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_single MonoidAlgebra.liftNC_singleₓ'. -/
 @[simp]
 theorem liftNC_single (f : k →+ R) (g : G → R) (a : G) (b : k) :
@@ -163,10 +160,7 @@ instance : NonUnitalNonAssocSemiring (MonoidAlgebra k G) :=
 variable [Semiring R]
 
 /- warning: monoid_algebra.lift_nc_mul -> MonoidAlgebra.liftNC_mul is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] [_inst_3 : Semiring.{u3} R] {g_hom : Type.{u4}} [_inst_4 : MulHomClass.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : g_hom) (a : MonoidAlgebra.{u1, u2} k G _inst_1) (b : MonoidAlgebra.{u1, u2} k G _inst_1), (forall {x : G} {y : G}, (Membership.Mem.{u2, u2} G (Finset.{u2} G) (Finset.hasMem.{u2} G) y (Finsupp.support.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a)) -> (Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) b x)) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g y))) -> (Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) a) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) b)))
-but is expected to have type
-  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Mul.{u4} G] [_inst_3 : Semiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : MulHomClass.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : g_hom) (a : MonoidAlgebra.{u3, u4} k G _inst_1) (b : MonoidAlgebra.{u3, u4} k G _inst_1), (forall {x : G} {y : G}, (Membership.mem.{u4, u4} G (Finset.{u4} G) (Finset.instMembershipFinset.{u4} G) y (Finsupp.support.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1)) a)) -> (Commute.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) _inst_3))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u3} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g y))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.mul.{u3, u4} k G _inst_1 _inst_2)) a b)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.mul.{u3, u4} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) a) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) b)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_mul MonoidAlgebra.liftNC_mulₓ'. -/
 theorem liftNC_mul {g_hom : Type _} [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)) :
@@ -217,10 +211,7 @@ theorem one_def : (1 : MonoidAlgebra k G) = single 1 1 :=
 #align monoid_algebra.one_def MonoidAlgebra.one_def
 
 /- warning: monoid_algebra.lift_nc_one -> MonoidAlgebra.liftNC_one is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : NonAssocSemiring.{u3} R] [_inst_2 : Semiring.{u1} k] [_inst_3 : One.{u2} G] {g_hom : Type.{u4}} [_inst_4 : OneHomClass.{u4, u2, u3} g_hom G R _inst_3 (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1)))] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (g : g_hom), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_2))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_1))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_2))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_1))))) => (MonoidAlgebra.{u1, u2} k G _inst_2) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_2))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_1))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_1) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1)))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1 (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (OneHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_3 (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))) _inst_4)) g)) (OfNat.ofNat.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) 1 (OfNat.mk.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) 1 (One.one.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.one.{u1, u2} k G _inst_2 _inst_3))))) (OfNat.ofNat.{u3} R 1 (OfNat.mk.{u3} R 1 (One.one.{u3} R (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))))))
-but is expected to have type
-  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] [_inst_2 : Semiring.{u3} k] [_inst_3 : One.{u4} G] {g_hom : Type.{u2}} [_inst_4 : OneHomClass.{u2, u4, u1} g_hom G R _inst_3 (NonAssocSemiring.toOne.{u1} R _inst_1)] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1) (g : g_hom), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (MonoidAlgebra.{u3, u4} k G _inst_2) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_2) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_2))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R _inst_1)))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1) k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1 (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1)) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1264 : G) => R) _x) (OneHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_3 (NonAssocSemiring.toOne.{u1} R _inst_1) _inst_4) g)) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) 1 (One.toOfNat1.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) (NonAssocSemiring.toOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) _inst_1)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_one MonoidAlgebra.liftNC_oneₓ'. -/
 @[simp]
 theorem liftNC_one {g_hom : Type _} [OneHomClass g_hom G R] (f : k →+* R) (g : g_hom) :
@@ -675,10 +666,7 @@ theorem single_mul_apply_of_not_exists_mul [Mul G] (r : k) {g g' : G} (x : Monoi
 #align monoid_algebra.single_mul_apply_of_not_exists_mul MonoidAlgebra.single_mul_apply_of_not_exists_mul
 
 /- warning: monoid_algebra.lift_nc_smul -> MonoidAlgebra.liftNC_smul is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] {R : Type.{u3}} [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u1, u2} k G _inst_1), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => G -> R) (MonoidHom.hasCoeToFun.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) (SMul.smul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) c φ)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f c) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => G -> R) (MonoidHom.hasCoeToFun.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) φ))
-but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} [_inst_1 : Semiring.{u2} k] [_inst_2 : MulOneClass.{u3} G] {R : Type.{u1}} [_inst_3 : Semiring.{u1} R] (f : RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u2, u3} k G _inst_1), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MulZeroOneClass.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R (MulOneClass.toMul.{u3} G _inst_2) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MulZeroOneClass.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) φ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) _inst_3)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f c) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R (MulOneClass.toMul.{u3} G _inst_2) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) φ))
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_smul 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 φ :=
@@ -749,10 +737,7 @@ instance sMulCommClass_symm_self [SMulCommClass k R k] :
 variable {A : Type u₃} [NonUnitalNonAssocSemiring A]
 
 /- warning: monoid_algebra.non_unital_alg_hom_ext -> MonoidAlgebra.nonUnitalAlgHom_ext is a dubious translation:
-lean 3 declaration is
-  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Mul.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (forall (x : G), Eq.{succ u3} A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₂ (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
-but is expected to have type
-  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Mul.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (forall (x : G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : MonoidAlgebra.{u1, u2} k G _inst_1) => A) (MonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : MonoidAlgebra.{u1, u2} k G _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ (MonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : MonoidAlgebra.{u1, u2} k G _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₂ (MonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1)))))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.non_unital_alg_hom_ext MonoidAlgebra.nonUnitalAlgHom_extₓ'. -/
 /-- A non_unital `k`-algebra homomorphism from `monoid_algebra k G` is uniquely defined by its
 values on the functions `single a 1`. -/
@@ -869,10 +854,7 @@ def mapDomainRingHom (k : Type _) {H F : Type _} [Semiring k] [Monoid G] [Monoid
 -/
 
 /- warning: monoid_algebra.ring_hom_ext -> MonoidAlgebra.ringHom_ext is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Semiring.{u3} R] {f : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)} {g : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)}, (forall (b : k), Eq.{succ u3} R (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) b)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) b))) -> (forall (a : G), Eq.{succ u3} R (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f g)
-but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : MulOneClass.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (forall (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b))) -> (forall (a : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1)))))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.ring_hom_ext MonoidAlgebra.ringHom_extₓ'. -/
 /-- If two ring homomorphisms from `monoid_algebra k G` are equal on all `single a 1`
 and `single 1 b`, then they are equal. -/
@@ -886,10 +868,7 @@ theorem ringHom_ext {R} [Semiring k] [MulOneClass G] [Semiring R] {f g : MonoidA
 #align monoid_algebra.ring_hom_ext MonoidAlgebra.ringHom_ext
 
 /- warning: monoid_algebra.ring_hom_ext' -> MonoidAlgebra.ringHom_ext' is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Semiring.{u3} R] {f : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)} {g : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)}, (Eq.{max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHom.comp.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3) f (MonoidAlgebra.singleOneRingHom.{u1, u2} k G _inst_1 _inst_2)) (RingHom.comp.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3) g (MonoidAlgebra.singleOneRingHom.{u1, u2} k G _inst_1 _inst_2))) -> (Eq.{max (succ u3) (succ u2)} (MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G _inst_1) R _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) ((fun (a : Sort.{max (succ (max u1 u2)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u1 u2))}) [self : HasLiftT.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} a b] => self.0) (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (HasLiftT.mk.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (CoeTCₓ.coe.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHom.hasCoeT.{max u1 u2, u3, max (max u1 u2) u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2)) (MonoidHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G _inst_1) R _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) ((fun (a : Sort.{max (succ (max u1 u2)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u1 u2))}) [self : HasLiftT.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} a b] => self.0) (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (HasLiftT.mk.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (CoeTCₓ.coe.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHom.hasCoeT.{max u1 u2, u3, max (max u1 u2) u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f g)
-but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : MulOneClass.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (Eq.{max (succ u2) (succ u1)} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHom.comp.{u2, max u2 u3, u1} k (MonoidAlgebra.{u2, u3} k G _inst_1) R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) f (MonoidAlgebra.singleOneRingHom.{u2, u3} k G _inst_1 _inst_2)) (RingHom.comp.{u2, max u2 u3, u1} k (MonoidAlgebra.{u2, u3} k G _inst_1) R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) g (MonoidAlgebra.singleOneRingHom.{u2, u3} k G _inst_1 _inst_2))) -> (Eq.{max (succ u3) (succ u1)} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHom.comp.{u3, max u2 u3, u1} G (MonoidAlgebra.{u2, u3} k G _inst_1) R _inst_2 (MulZeroOneClass.toMulOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHomClass.toMonoidHom.{max u2 u3, u1, max (max u2 u3) u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MulZeroOneClass.toMulOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (MonoidAlgebra.of.{u2, u3} k G _inst_1 _inst_2)) (MonoidHom.comp.{u3, max u2 u3, u1} G (MonoidAlgebra.{u2, u3} k G _inst_1) R _inst_2 (MulZeroOneClass.toMulOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHomClass.toMonoidHom.{max u2 u3, u1, max (max u2 u3) u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MulZeroOneClass.toMulOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) g) (MonoidAlgebra.of.{u2, u3} k G _inst_1 _inst_2))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.ring_hom_ext' MonoidAlgebra.ringHom_ext'ₓ'. -/
 /-- If two ring homomorphisms from `monoid_algebra k G` are equal on all `single a 1`
 and `single 1 b`, then they are equal.
@@ -947,20 +926,14 @@ theorem coe_algebraMap {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A]
 #align monoid_algebra.coe_algebra_map MonoidAlgebra.coe_algebraMap
 
 /- warning: monoid_algebra.single_eq_algebra_map_mul_of -> MonoidAlgebra.single_eq_algebraMap_mul_of is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] (a : G) (b : k), Eq.{max (succ u2) (succ u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) a b) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (instHMul.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (coeFn.{max (succ u1) (succ (max u1 u2)), max (succ u1) (succ (max u1 u2))} (RingHom.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (fun (_x : RingHom.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) => k -> (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1))) (RingHom.hasCoeToFun.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (algebraMap.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) b) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) => G -> (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) a))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] (a : G) (b : k), Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) a b) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) (instHMul.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (RingHom.instRingHomClassRingHom.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (algebraMap.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) b) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) a))
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_eq_algebra_map_mul_of 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 := by simp
 #align monoid_algebra.single_eq_algebra_map_mul_of MonoidAlgebra.single_eq_algebraMap_mul_of
 
 /- warning: monoid_algebra.single_algebra_map_eq_algebra_map_mul_of -> MonoidAlgebra.single_algebraMap_eq_algebraMap_mul_of is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {A : Type.{u3}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u1, u3} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u2} G] (a : G) (b : k), Eq.{max (succ u2) (succ u3)} (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.single.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2)))) a (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (fun (_x : RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) => k -> A) (RingHom.hasCoeToFun.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (algebraMap.{u1, u3} k A _inst_1 _inst_2 _inst_3) b)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (instHMul.{max u2 u3} (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (MonoidAlgebra.mul.{u3, u2} A G _inst_2 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_4)))) (coeFn.{max (succ u1) (succ (max u3 u2)), max (succ u1) (succ (max u3 u2))} (RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (fun (_x : RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) => k -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (RingHom.hasCoeToFun.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (algebraMap.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_2 _inst_3 _inst_4)) b) (coeFn.{max (succ (max u3 u2)) (succ u2), max (succ u2) (succ (max u3 u2))} (MonoidHom.{u2, max u3 u2} G (MonoidAlgebra.{u3, u2} A G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4))))) (fun (_x : MonoidHom.{u2, max u3 u2} G (MonoidAlgebra.{u3, u2} A G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4))))) => G -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (MonoidHom.hasCoeToFun.{u2, max u3 u2} G (MonoidAlgebra.{u3, u2} A G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4))))) (MonoidAlgebra.of.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4)) a))
-but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} k] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u3} G] (a : G) (b : k), Eq.{max (succ u3) (succ u1)} (MonoidAlgebra.{u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => A) b) G _inst_2) (MonoidAlgebra.single.{u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => A) b) G _inst_2 a (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (algebraMap.{u2, u1} k A _inst_1 _inst_2 _inst_3) b)) (HMul.hMul.{max u3 u1, max u3 u1, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u3} A G _inst_2) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) (instHMul.{max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) (MonoidAlgebra.mul.{u1, u3} A G _inst_2 (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G _inst_4)))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u2, max (succ u3) (succ u1)} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u2, u3, u1} k G A _inst_1 _inst_2 _inst_3 _inst_4)) b) (FunLike.coe.{max (succ u3) (succ u1), succ u3, max (succ u3) (succ u1)} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max u3 u1, u3, max u3 u1} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (MonoidAlgebra.{u1, u3} A G _inst_2) (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G _inst_4)) (MulOneClass.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, max u3 u1} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4)))) (MonoidHom.monoidHomClass.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))))) (MonoidAlgebra.of.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4)) a))
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_algebra_map_eq_algebra_map_mul_of 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) :
@@ -992,10 +965,7 @@ variable {k G} [CommSemiring k] [Monoid G]
 variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [Algebra k B]
 
 /- warning: monoid_algebra.lift_nc_alg_hom -> MonoidAlgebra.liftNCAlgHom is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : G), Commute.{u4} B (Distrib.toHasMul.{u4} B (NonUnitalNonAssocSemiring.toDistrib.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (fun (_x : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) => A -> B) ([anonymous].{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) f x) (coeFn.{max (succ u4) (succ u2), max (succ u2) (succ u4)} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (fun (_x : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) => G -> B) (MonoidHom.hasCoeToFun.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) g y)) -> (AlgHom.{u1, max u3 u2, u4} k (MonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (MonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_alg_hom MonoidAlgebra.liftNCAlgHomₓ'. -/
 /-- `lift_nc_ring_hom` as a `alg_hom`, for when `f` is an `alg_hom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
@@ -1017,10 +987,7 @@ theorem algHom_ext ⦃φ₁ φ₂ : MonoidAlgebra k G →ₐ[k] A⦄
 -/
 
 /- warning: monoid_algebra.alg_hom_ext' -> MonoidAlgebra.algHom_ext' is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {{φ₁ : AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4}} {{φ₂ : AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4}}, (Eq.{max (succ u3) (succ u2)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) ((fun (a : Sort.{max (succ (max u1 u2)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u1 u2))}) [self : HasLiftT.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} a b] => self.0) (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (HasLiftT.mk.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (CoeTCₓ.coe.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHom.hasCoeT.{max u1 u2, u3, max (max u1 u2) u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} A _inst_3) (AlgHomClass.toRingHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.algHomClass.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4)))))) φ₁) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))) (MonoidHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) ((fun (a : Sort.{max (succ (max u1 u2)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u1 u2))}) [self : HasLiftT.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} a b] => self.0) (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (HasLiftT.mk.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (CoeTCₓ.coe.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHom.hasCoeT.{max u1 u2, u3, max (max u1 u2) u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} A _inst_3) (AlgHomClass.toRingHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.algHomClass.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4)))))) φ₂) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) φ₁ φ₂)
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {{φ₁ : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4}} {{φ₂ : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4}}, (Eq.{max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHomClass.toMonoidHom.{max u1 u2, u3, max (max u1 u2) u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} A _inst_3) (AlgHomClass.toRingHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.algHomClass.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))) φ₁) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))) (MonoidHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHomClass.toMonoidHom.{max u1 u2, u3, max (max u1 u2) u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} A _inst_3) (AlgHomClass.toRingHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.algHomClass.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))) φ₂) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) φ₁ φ₂)
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.alg_hom_ext' MonoidAlgebra.algHom_ext'ₓ'. -/
 /-- See note [partially-applied ext lemmas]. -/
 @[ext]
@@ -1071,10 +1038,7 @@ theorem lift_def (F : G →* A) : ⇑(lift k G A F) = liftNC ((algebraMap k A :
 -/
 
 /- warning: monoid_algebra.lift_symm_apply -> MonoidAlgebra.lift_symm_apply is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : G), Eq.{succ u3} A (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) => G -> A) (MonoidHom.hasCoeToFun.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ u3) (succ u2)) (max (succ u3) (succ u2)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ u3) (succ u2)} (Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) => (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) -> (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u3) (succ u2), max (succ (max u1 u2)) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) -> A) ([anonymous].{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) F (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) x (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_symm_apply MonoidAlgebra.lift_symm_applyₓ'. -/
 @[simp]
 theorem lift_symm_apply (F : MonoidAlgebra k G →ₐ[k] A) (x : G) :
@@ -1130,10 +1094,7 @@ def mapDomainNonUnitalAlgHom (k A : Type _) [CommSemiring k] [Semiring A] [Algeb
 -/
 
 /- warning: monoid_algebra.map_domain_algebra_map -> MonoidAlgebra.mapDomain_algebraMap is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Monoid.{u1} G] (k : Type.{u2}) (A : Type.{u3}) {H : Type.{u4}} {F : Type.{u5}} [_inst_7 : CommSemiring.{u2} k] [_inst_8 : Semiring.{u3} A] [_inst_9 : Algebra.{u2, u3} k A _inst_7 _inst_8] [_inst_10 : Monoid.{u4} H] [_inst_11 : MonoidHomClass.{u5, u1, u4} F G H (Monoid.toMulOneClass.{u1} G _inst_2) (Monoid.toMulOneClass.{u4} H _inst_10)] (f : F) (r : k), Eq.{max (succ u4) (succ u3)} (Finsupp.{u4, u3} H A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_8))))))) (Finsupp.mapDomain.{u1, u4, u3} G H A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_8))) (coeFn.{succ u5, max (succ u1) (succ u4)} F (fun (_x : F) => G -> H) (FunLike.hasCoeToFun.{succ u5, succ u1, succ u4} F G (fun (_x : G) => H) (MulHomClass.toFunLike.{u5, u1, u4} F G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G _inst_2)) (MulOneClass.toHasMul.{u4} H (Monoid.toMulOneClass.{u4} H _inst_10)) (MonoidHomClass.toMulHomClass.{u5, u1, u4} F G H (Monoid.toMulOneClass.{u1} G _inst_2) (Monoid.toMulOneClass.{u4} H _inst_10) _inst_11))) f) (coeFn.{max (succ u2) (succ (max u3 u1)), max (succ u2) (succ (max u3 u1))} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u3, u1} A G _inst_8) (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2))) (fun (_x : RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u3, u1} A G _inst_8) (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2))) => k -> (MonoidAlgebra.{u3, u1} A G _inst_8)) (RingHom.hasCoeToFun.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u3, u1} A G _inst_8) (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2) (MonoidAlgebra.algebra.{u2, u1, u3} k G A _inst_7 _inst_8 _inst_9 _inst_2)) r)) (coeFn.{max (succ u2) (succ (max u3 u4)), max (succ u2) (succ (max u3 u4))} (RingHom.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u4} (MonoidAlgebra.{u3, u4} A H _inst_8) (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10))) (fun (_x : RingHom.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u4} (MonoidAlgebra.{u3, u4} A H _inst_8) (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10))) => k -> (MonoidAlgebra.{u3, u4} A H _inst_8)) (RingHom.hasCoeToFun.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u4} (MonoidAlgebra.{u3, u4} A H _inst_8) (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10))) (algebraMap.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10) (MonoidAlgebra.algebra.{u2, u4, u3} k H A _inst_7 _inst_8 _inst_9 _inst_10)) r)
-but is expected to have type
-  forall {G : Type.{u5}} [_inst_2 : Monoid.{u5} G] (k : Type.{u4}) (A : Type.{u3}) {H : Type.{u2}} {F : Type.{u1}} [_inst_7 : CommSemiring.{u4} k] [_inst_8 : Semiring.{u3} A] [_inst_9 : Algebra.{u4, u3} k A _inst_7 _inst_8] [_inst_10 : Monoid.{u2} H] [_inst_11 : MonoidHomClass.{u1, u5, u2} F G H (Monoid.toMulOneClass.{u5} G _inst_2) (Monoid.toMulOneClass.{u2} H _inst_10)] (f : F) (r : k), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.mapDomain.{u3, u5, u2} A G _inst_8 H (FunLike.coe.{succ u1, succ u5, succ u2} F G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{u1, u5, u2} F G H (MulOneClass.toMul.{u5} G (Monoid.toMulOneClass.{u5} G _inst_2)) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H _inst_10)) (MonoidHomClass.toMulHomClass.{u1, u5, u2} F G H (Monoid.toMulOneClass.{u5} G _inst_2) (Monoid.toMulOneClass.{u2} H _inst_10) _inst_11)) f) (FunLike.coe.{max (max (succ u5) (succ u4)) (succ u3), succ u4, max (succ u5) (succ u3)} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u3, u5} A G _inst_8) _x) (MulHomClass.toFunLike.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)))) (NonUnitalNonAssocSemiring.toMul.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)) (RingHom.instRingHomClassRingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)))))) (algebraMap.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2) (MonoidAlgebra.algebra.{u4, u5, u3} k G A _inst_7 _inst_8 _inst_9 _inst_2)) r)) (FunLike.coe.{max (max (succ u4) (succ u3)) (succ u2), succ u4, max (succ u3) (succ u2)} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u3, u2} A H _inst_8) _x) (MulHomClass.toFunLike.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)) (RingHom.instRingHomClassRingHom.{u4, max u3 u2} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)))))) (algebraMap.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10) (MonoidAlgebra.algebra.{u4, u2, u3} k H A _inst_7 _inst_8 _inst_9 _inst_10)) r)
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.map_domain_algebra_map MonoidAlgebra.mapDomain_algebraMapₓ'. -/
 theorem mapDomain_algebraMap (k A : Type _) {H F : Type _} [CommSemiring k] [Semiring A]
     [Algebra k A] [Monoid H] [MonoidHomClass F G H] (f : F) (r : k) :
@@ -1171,10 +1132,7 @@ def GroupSmul.linearMap [Monoid G] [CommSemiring k] (V : Type u₃) [AddCommMono
 -/
 
 /- warning: monoid_algebra.group_smul.linear_map_apply -> MonoidAlgebra.GroupSmul.linearMap_apply is a dubious translation:
-lean 3 declaration is
-  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] (V : Type.{u3}) [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_2) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} k V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} k V (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] (g : G) (v : V), Eq.{succ u3} V (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V V _inst_3 _inst_3 _inst_4 _inst_4) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V V _inst_3 _inst_3 _inst_4 _inst_4) => V -> V) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V V (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_3 _inst_4 _inst_4 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) (MonoidAlgebra.GroupSmul.linearMap.{u1, u2, u3} k G _inst_1 _inst_2 V _inst_3 _inst_4 _inst_5 _inst_6 g) v) (SMul.smul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (SMulZeroClass.toHasSmul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MulZeroClass.toHasZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) g (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))))))) v)
-but is expected to have type
-  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] (V : Type.{u3}) [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] (g : G) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => V) v) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V V _inst_3 _inst_3 _inst_4 _inst_4) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => V) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V V (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_3 _inst_4 _inst_4 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) (MonoidAlgebra.GroupSmul.linearMap.{u1, u2, u3} k G _inst_1 _inst_2 V _inst_3 _inst_4 _inst_5 _inst_6 g) v) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.group_smul.linear_map_apply MonoidAlgebra.GroupSmul.linearMap_applyₓ'. -/
 @[simp]
 theorem GroupSmul.linearMap_apply [Monoid G] [CommSemiring k] (V : Type u₃) [AddCommMonoid V]
@@ -1196,10 +1154,7 @@ variable [Monoid G] [CommSemiring k] {V W : Type u₃} [AddCommMonoid V] [Module
 include h
 
 /- warning: monoid_algebra.equivariant_of_linear_of_comm -> MonoidAlgebra.equivariantOfLinearOfComm is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₃}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₁ u₂, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toHasSmul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toAddZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u₂, u₁} k G (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u₁, u₂, u₁} k G k (CommSemiring.toSemiring.{u₁} k _inst_2) (SMulWithZero.toSmulZeroClass.{u₁, u₁} k k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MulZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u₁, u₃} k V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u₁, u₃} k V (MulZeroClass.toHasZero.{u₁} k (MulZeroOneClass.toMulZeroClass.{u₁} k (MonoidWithZero.toMulZeroOneClass.{u₁} k (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₃} W] [_inst_8 : Module.{u₁, u₃} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₁ u₂, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (SMulZeroClass.toHasSmul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toAddZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u₂, u₁} k G (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u₁, u₂, u₁} k G k (CommSemiring.toSemiring.{u₁} k _inst_2) (SMulWithZero.toSmulZeroClass.{u₁, u₁} k k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MulZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toHasSmul.{u₁, u₃} k W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{u₁, u₃} k W (MulZeroClass.toHasZero.{u₁} k (MulZeroOneClass.toMulZeroClass.{u₁} k (MonoidWithZero.toMulZeroOneClass.{u₁} k (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{u₁, u₃} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8), (forall (g : G) (v : V), Eq.{succ u₃} W (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (SMul.smul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (SMulZeroClass.toHasSmul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (MulZeroClass.toHasZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (Finsupp.single.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) g (OfNat.ofNat.{u₁} k 1 (OfNat.mk.{u₁} k 1 (One.one.{u₁} k (AddMonoidWithOne.toOne.{u₁} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u₁} k (NonAssocSemiring.toAddCommMonoidWithOne.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))))))) v)) (SMul.smul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (SMulZeroClass.toHasSmul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (MulZeroClass.toHasZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (Finsupp.single.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) g (OfNat.ofNat.{u₁} k 1 (OfNat.mk.{u₁} k 1 (One.one.{u₁} k (AddMonoidWithOne.toOne.{u₁} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u₁} k (NonAssocSemiring.toAddCommMonoidWithOne.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))))))) (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) -> (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toNonAssocSemiring.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9)
-but is expected to have type
-  forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₄}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₂ u₁, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₂ u₁, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u₁, u₃} k V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u₁, u₃} k V (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₄} W] [_inst_8 : Module.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₂ u₁, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₂ u₁, u₄} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u₁, u₄} k W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u₁, u₄} k W (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u₁, u₄} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8), (forall (g : G) (v : V), Eq.{succ u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (HSMul.hSMul.{max u₂ u₁, u₄, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (instHSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) -> (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₂ u₁} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) (Monoid.toMulOneClass.{u₂} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9)
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.equivariant_of_linear_of_comm MonoidAlgebra.equivariantOfLinearOfCommₓ'. -/
 /-- Build a `k[G]`-linear map from a `k`-linear map and evidence that it is `G`-equivariant. -/
 def equivariantOfLinearOfComm : V →ₗ[MonoidAlgebra k G] W
@@ -1218,10 +1173,7 @@ def equivariantOfLinearOfComm : V →ₗ[MonoidAlgebra k G] W
 #align monoid_algebra.equivariant_of_linear_of_comm MonoidAlgebra.equivariantOfLinearOfComm
 
 /- warning: monoid_algebra.equivariant_of_linear_of_comm_apply -> MonoidAlgebra.equivariantOfLinearOfComm_apply is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₃}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₁ u₂, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toHasSmul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toAddZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u₂, u₁} k G (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u₁, u₂, u₁} k G k (CommSemiring.toSemiring.{u₁} k _inst_2) (SMulWithZero.toSmulZeroClass.{u₁, u₁} k k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MulZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u₁, u₃} k V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u₁, u₃} k V (MulZeroClass.toHasZero.{u₁} k (MulZeroOneClass.toMulZeroClass.{u₁} k (MonoidWithZero.toMulZeroOneClass.{u₁} k (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₃} W] [_inst_8 : Module.{u₁, u₃} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₁ u₂, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (SMulZeroClass.toHasSmul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toAddZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u₂, u₁} k G (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u₁, u₂, u₁} k G k (CommSemiring.toSemiring.{u₁} k _inst_2) (SMulWithZero.toSmulZeroClass.{u₁, u₁} k k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MulZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toHasSmul.{u₁, u₃} k W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{u₁, u₃} k W (MulZeroClass.toHasZero.{u₁} k (MulZeroOneClass.toMulZeroClass.{u₁} k (MonoidWithZero.toMulZeroOneClass.{u₁} k (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{u₁, u₃} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (h : forall (g : G) (v : V), Eq.{succ u₃} W (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (SMul.smul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (SMulZeroClass.toHasSmul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (MulZeroClass.toHasZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (Finsupp.single.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) g (OfNat.ofNat.{u₁} k 1 (OfNat.mk.{u₁} k 1 (One.one.{u₁} k (AddMonoidWithOne.toOne.{u₁} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u₁} k (NonAssocSemiring.toAddCommMonoidWithOne.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))))))) v)) (SMul.smul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (SMulZeroClass.toHasSmul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (MulZeroClass.toHasZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (Finsupp.single.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) g (OfNat.ofNat.{u₁} k 1 (OfNat.mk.{u₁} k 1 (One.one.{u₁} k (AddMonoidWithOne.toOne.{u₁} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u₁} k (NonAssocSemiring.toAddCommMonoidWithOne.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))))))) (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) (v : V), Eq.{succ u₃} W (coeFn.{succ u₃, succ u₃} (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toNonAssocSemiring.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) (fun (_x : LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toNonAssocSemiring.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) => V -> W) (LinearMap.hasCoeToFun.{max u₁ u₂, max u₁ u₂, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_7 _inst_5 _inst_9 (RingHom.id.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toNonAssocSemiring.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)))) (MonoidAlgebra.equivariantOfLinearOfComm.{u₁, u₂, u₃} k G _inst_1 _inst_2 V W _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 f h) v) (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v)
-but is expected to have type
-  forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₄}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₂ u₁, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₂ u₁, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u₁, u₃} k V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u₁, u₃} k V (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₄} W] [_inst_8 : Module.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₂ u₁, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₂ u₁, u₄} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u₁, u₄} k W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u₁, u₄} k W (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u₁, u₄} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (h : forall (g : G) (v : V), Eq.{succ u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (HSMul.hSMul.{max u₂ u₁, u₄, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (instHSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) (v : V), Eq.{succ u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₂ u₁} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) (Monoid.toMulOneClass.{u₂} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_7 _inst_5 _inst_9 (RingHom.id.{max u₂ u₁} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) (Monoid.toMulOneClass.{u₂} G _inst_1)))) (MonoidAlgebra.equivariantOfLinearOfComm.{u₁, u₂, u₃, u₄} k G _inst_1 _inst_2 V W _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 f h) v) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v)
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.equivariant_of_linear_of_comm_apply MonoidAlgebra.equivariantOfLinearOfComm_applyₓ'. -/
 @[simp]
 theorem equivariantOfLinearOfComm_apply (v : V) : (equivariantOfLinearOfComm f h) v = f v :=
@@ -1370,10 +1322,7 @@ variable {V : Type _} [AddCommMonoid V]
 variable [Module k V] [Module (MonoidAlgebra k G) V] [IsScalarTower k (MonoidAlgebra k G) V]
 
 /- warning: monoid_algebra.submodule_of_smul_mem -> MonoidAlgebra.submoduleOfSmulMem is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {V : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3] [_inst_5 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3] [_inst_6 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_1))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_1) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} k V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} k V (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4))))] (W : Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4), (forall (g : G) (v : V), (Membership.Mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) v W) -> (Membership.Mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) (SMul.smul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) => G -> (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) g) v) W)) -> (Submodule.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {V : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4))))] (W : Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4), (forall (g : G) (v : V), (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) v W) -> (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) (HSMul.hSMul.{max u1 u2, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V V (instHSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (SMulZeroClass.toSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidWithZero.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5))))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) g) v) W)) -> (Submodule.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.submodule_of_smul_mem MonoidAlgebra.submoduleOfSmulMemₓ'. -/
 /-- A submodule over `k` which is stable under scalar multiplication by elements of `G` is a
 submodule over `monoid_algebra k G`  -/
@@ -1440,10 +1389,7 @@ def liftNC (f : k →+ R) (g : Multiplicative G → R) : AddMonoidAlgebra k G 
 #align add_monoid_algebra.lift_nc AddMonoidAlgebra.liftNC
 
 /- warning: add_monoid_algebra.lift_nc_single -> AddMonoidAlgebra.liftNC_single is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : NonUnitalNonAssocSemiring.{u3} R] (f : AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (g : (Multiplicative.{u2} G) -> R) (a : G) (b : k), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 _inst_2 f g) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a b)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R _inst_2))) (coeFn.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (fun (_x : AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) => k -> R) (AddMonoidHom.hasCoeToFun.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) f b) (g (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (fun (_x : Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) => G -> (Multiplicative.{u2} G)) (Equiv.hasCoeToFun.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) a)))
-but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : NonUnitalNonAssocSemiring.{u1} R] (f : AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (g : (Multiplicative.{u3} G) -> R) (a : G) (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 _inst_2 f g) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddZeroClass.toAdd.{u2} k (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) f b) (g (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} G (Multiplicative.{u3} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : G) => Multiplicative.{u3} G) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} G (Multiplicative.{u3} G)) (Multiplicative.ofAdd.{u3} G) a)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_single AddMonoidAlgebra.liftNC_singleₓ'. -/
 @[simp]
 theorem liftNC_single (f : k →+ R) (g : Multiplicative G → R) (a : G) (b : k) :
@@ -1504,10 +1450,7 @@ instance : NonUnitalNonAssocSemiring (AddMonoidAlgebra k G) :=
 variable [Semiring R]
 
 /- warning: add_monoid_algebra.lift_nc_mul -> AddMonoidAlgebra.liftNC_mul is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] [_inst_3 : Semiring.{u3} R] {g_hom : Type.{u4}} [_inst_4 : MulHomClass.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : g_hom) (a : AddMonoidAlgebra.{u1, u2} k G _inst_1) (b : AddMonoidAlgebra.{u1, u2} k G _inst_1), (forall {x : G} {y : G}, (Membership.Mem.{u2, u2} G (Finset.{u2} G) (Finset.hasMem.{u2} G) y (Finsupp.support.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a)) -> (Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) b x)) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (fun (_x : Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) => G -> (Multiplicative.{u2} G)) (Equiv.hasCoeToFun.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) y)))) -> (Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) a) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) b)))
-but is expected to have type
-  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Add.{u4} G] [_inst_3 : Semiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : MulHomClass.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : g_hom) (a : AddMonoidAlgebra.{u3, u4} k G _inst_1) (b : AddMonoidAlgebra.{u3, u4} k G _inst_1), (forall {x : G} {y : G}, (Membership.mem.{u4, u4} G (Finset.{u4} G) (Finset.instMembershipFinset.{u4} G) y (Finsupp.support.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1)) a)) -> (Commute.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) _inst_3))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u3} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g (FunLike.coe.{succ u4, succ u4, succ u4} (Equiv.{succ u4, succ u4} G (Multiplicative.{u4} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : G) => Multiplicative.{u4} G) _x) (Equiv.instFunLikeEquiv.{succ u4, succ u4} G (Multiplicative.{u4} G)) (Multiplicative.ofAdd.{u4} G) y)))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.hasMul.{u3, u4} k G _inst_1 _inst_2)) a b)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.hasMul.{u3, u4} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) a) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) b)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_mul AddMonoidAlgebra.liftNC_mulₓ'. -/
 theorem liftNC_mul {g_hom : Type _} [MulHomClass g_hom (Multiplicative G) R] (f : k →+* R)
     (g : g_hom) (a b : AddMonoidAlgebra k G)
@@ -1538,10 +1481,7 @@ theorem one_def : (1 : AddMonoidAlgebra k G) = single 0 1 :=
 #align add_monoid_algebra.one_def AddMonoidAlgebra.one_def
 
 /- warning: add_monoid_algebra.lift_nc_one -> AddMonoidAlgebra.liftNC_one is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Zero.{u2} G] [_inst_3 : NonAssocSemiring.{u3} R] {g_hom : Type.{u4}} [_inst_4 : OneHomClass.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasOne.{u2} G _inst_2) (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3)))] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (g : g_hom), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_3))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_3))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_3))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_3) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3)))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3 (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (OneHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasOne.{u2} G _inst_2) (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))) _inst_4)) g)) (OfNat.ofNat.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) 1 (OfNat.mk.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) 1 (One.one.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.one.{u1, u2} k G _inst_1 _inst_2))))) (OfNat.ofNat.{u3} R 1 (OfNat.mk.{u3} R 1 (One.one.{u3} R (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))))))
-but is expected to have type
-  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Zero.{u4} G] [_inst_3 : NonAssocSemiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : OneHomClass.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (instOneMultiplicative.{u4} G _inst_2) (NonAssocSemiring.toOne.{u1} R _inst_3)] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3) (g : g_hom), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R _inst_3)))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3 (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3)) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1264 : Multiplicative.{u4} G) => R) _x) (OneHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (instOneMultiplicative.{u4} G _inst_2) (NonAssocSemiring.toOne.{u1} R _inst_3) _inst_4) g)) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) 1 (One.toOfNat1.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) (NonAssocSemiring.toOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) _inst_3)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_one AddMonoidAlgebra.liftNC_oneₓ'. -/
 @[simp]
 theorem liftNC_one {g_hom : Type _} [OneHomClass g_hom (Multiplicative G) R] (f : k →+* R)
@@ -2005,10 +1945,7 @@ theorem single_mul_apply [AddGroup G] (r : k) (x : G) (f : AddMonoidAlgebra k G)
 #align add_monoid_algebra.single_mul_apply AddMonoidAlgebra.single_mul_apply
 
 /- warning: add_monoid_algebra.lift_nc_smul -> AddMonoidAlgebra.liftNC_smul is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] {R : Type.{u3}} [_inst_2 : AddZeroClass.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u1, u2} k G _inst_1), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => (Multiplicative.{u2} G) -> R) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) (SMul.smul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) c φ)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f c) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => (Multiplicative.{u2} G) -> R) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) φ))
-but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} [_inst_1 : Semiring.{u2} k] {R : Type.{u1}} [_inst_2 : AddZeroClass.{u3} G] [_inst_3 : Semiring.{u1} R] (f : RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u2, u3} k G _inst_1), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) (fun (_x : Multiplicative.{u3} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u3} G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (MulOneClass.toMul.{u3} (Multiplicative.{u3} G) (Multiplicative.mulOneClass.{u3} G _inst_2)) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) φ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) _inst_3)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f c) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) (fun (_x : Multiplicative.{u3} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u3} G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (MulOneClass.toMul.{u3} (Multiplicative.{u3} G) (Multiplicative.mulOneClass.{u3} G _inst_2)) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) φ))
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_smul AddMonoidAlgebra.liftNC_smulₓ'. -/
 theorem liftNC_smul {R : Type _} [AddZeroClass G] [Semiring R] (f : k →+* R)
     (g : Multiplicative G →* R) (c : k) (φ : MonoidAlgebra k G) :
@@ -2150,10 +2087,7 @@ instance sMulCommClass_symm_self [SMulCommClass k R k] :
 variable {A : Type u₃} [NonUnitalNonAssocSemiring A]
 
 /- warning: add_monoid_algebra.non_unital_alg_hom_ext -> AddMonoidAlgebra.nonUnitalAlgHom_ext is a dubious translation:
-lean 3 declaration is
-  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Add.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (forall (x : G), Eq.{succ u3} A (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (fun (_x : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))) (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (fun (_x : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₂ (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))))) -> (Eq.{max (succ (max u2 u1)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
-but is expected to have type
-  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Add.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (forall (x : G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : AddMonoidAlgebra.{u1, u2} k G _inst_1) => A) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : AddMonoidAlgebra.{u1, u2} k G _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : AddMonoidAlgebra.{u1, u2} k G _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₂ (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1)))))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.non_unital_alg_hom_ext AddMonoidAlgebra.nonUnitalAlgHom_extₓ'. -/
 /-- A non_unital `k`-algebra homomorphism from `add_monoid_algebra k G` is uniquely defined by its
 values on the functions `single a 1`. -/
@@ -2218,10 +2152,7 @@ def singleZeroRingHom [Semiring k] [AddMonoid G] : k →+* AddMonoidAlgebra k G
 -/
 
 /- warning: add_monoid_algebra.ring_hom_ext -> AddMonoidAlgebra.ringHom_ext is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] {f : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)} {g : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)}, (forall (b : k), Eq.{succ u3} R (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) b)) (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) b))) -> (forall (a : G), Eq.{succ u3} R (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))) (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))))) -> (Eq.{max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f g)
-but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : AddMonoid.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (forall (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b))) -> (forall (a : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1)))))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.ring_hom_ext AddMonoidAlgebra.ringHom_extₓ'. -/
 /-- If two ring homomorphisms from `add_monoid_algebra k G` are equal on all `single a 1`
 and `single 0 b`, then they are equal. -/
@@ -2232,10 +2163,7 @@ theorem ringHom_ext {R} [Semiring k] [AddMonoid G] [Semiring R] {f g : AddMonoid
 #align add_monoid_algebra.ring_hom_ext AddMonoidAlgebra.ringHom_ext
 
 /- warning: add_monoid_algebra.ring_hom_ext' -> AddMonoidAlgebra.ringHom_ext' is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] {f : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)} {g : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)}, (Eq.{max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHom.comp.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3) f (AddMonoidAlgebra.singleZeroRingHom.{u1, u2} k G _inst_1 _inst_2)) (RingHom.comp.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3) g (AddMonoidAlgebra.singleZeroRingHom.{u1, u2} k G _inst_1 _inst_2))) -> (Eq.{max (succ u3) (succ u2)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHom.comp.{u2, max u2 u1, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) ((fun (a : Sort.{max (succ (max u2 u1)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u2 u1))}) [self : HasLiftT.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} a b] => self.0) (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (HasLiftT.mk.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (CoeTCₓ.coe.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHom.hasCoeT.{max u2 u1, u3, max (max u2 u1) u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u2 u1) u3, max u2 u1, u3} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MonoidHom.comp.{u2, max u2 u1, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) ((fun (a : Sort.{max (succ (max u2 u1)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u2 u1))}) [self : HasLiftT.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} a b] => self.0) (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (HasLiftT.mk.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (CoeTCₓ.coe.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHom.hasCoeT.{max u2 u1, u3, max (max u2 u1) u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u2 u1) u3, max u2 u1, u3} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) -> (Eq.{max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f g)
-but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : AddMonoid.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (Eq.{max (succ u2) (succ u1)} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHom.comp.{u2, max u2 u3, u1} k (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) f (AddMonoidAlgebra.singleZeroRingHom.{u2, u3} k G _inst_1 _inst_2)) (RingHom.comp.{u2, max u2 u3, u1} k (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) g (AddMonoidAlgebra.singleZeroRingHom.{u2, u3} k G _inst_1 _inst_2))) -> (Eq.{max (succ u3) (succ u1)} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHom.comp.{u3, max u2 u3, u1} (Multiplicative.{u3} G) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (Multiplicative.mulOneClass.{u3} G (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHomClass.toMonoidHom.{max u2 u3, u1, max (max u2 u3) u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MulZeroOneClass.toMulOneClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (AddMonoidAlgebra.of.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (MonoidHom.comp.{u3, max u2 u3, u1} (Multiplicative.{u3} G) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (Multiplicative.mulOneClass.{u3} G (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHomClass.toMonoidHom.{max u2 u3, u1, max (max u2 u3) u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MulZeroOneClass.toMulOneClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) g) (AddMonoidAlgebra.of.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.ring_hom_ext' AddMonoidAlgebra.ringHom_ext'ₓ'. -/
 /-- If two ring homomorphisms from `add_monoid_algebra k G` are equal on all `single a 1`
 and `single 0 b`, then they are equal.
@@ -2346,10 +2274,7 @@ variable {k G} [CommSemiring k] [AddMonoid G]
 variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [Algebra k B]
 
 /- warning: add_monoid_algebra.lift_nc_alg_hom -> AddMonoidAlgebra.liftNCAlgHom is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : Multiplicative.{u2} G), Commute.{u4} B (Distrib.toHasMul.{u4} B (NonUnitalNonAssocSemiring.toDistrib.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (fun (_x : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) => A -> B) ([anonymous].{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) f x) (coeFn.{max (succ u4) (succ u2), max (succ u2) (succ u4)} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (fun (_x : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) => (Multiplicative.{u2} G) -> B) (MonoidHom.hasCoeToFun.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (AddMonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : Multiplicative.{u2} G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (AddMonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_alg_hom AddMonoidAlgebra.liftNCAlgHomₓ'. -/
 /-- `lift_nc_ring_hom` as a `alg_hom`, for when `f` is an `alg_hom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : Multiplicative G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
@@ -2371,10 +2296,7 @@ theorem algHom_ext ⦃φ₁ φ₂ : AddMonoidAlgebra k G →ₐ[k] A⦄
 -/
 
 /- warning: add_monoid_algebra.alg_hom_ext' -> AddMonoidAlgebra.algHom_ext' is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {{φ₁ : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4}} {{φ₂ : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4}}, (Eq.{max (succ u3) (succ u2)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHom.comp.{u2, max u2 u1, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) ((fun (a : Sort.{max (succ (max u2 u1)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u2 u1))}) [self : HasLiftT.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} a b] => self.0) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (HasLiftT.mk.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (CoeTCₓ.coe.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHom.hasCoeT.{max u2 u1, u3, max (max u2 u1) u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u2 u1) u3, max u2 u1, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} A _inst_3) (AlgHomClass.toRingHomClass.{max (max u2 u1) u3, u1, max u2 u1, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.algHomClass.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4)))))) φ₁) (AddMonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MonoidHom.comp.{u2, max u2 u1, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) ((fun (a : Sort.{max (succ (max u2 u1)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u2 u1))}) [self : HasLiftT.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} a b] => self.0) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (HasLiftT.mk.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (CoeTCₓ.coe.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHom.hasCoeT.{max u2 u1, u3, max (max u2 u1) u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u2 u1) u3, max u2 u1, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} A _inst_3) (AlgHomClass.toRingHomClass.{max (max u2 u1) u3, u1, max u2 u1, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.algHomClass.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4)))))) φ₂) (AddMonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) -> (Eq.{max (succ (max u2 u1)) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) φ₁ φ₂)
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {{φ₁ : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4}} {{φ₂ : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4}}, (Eq.{max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHom.comp.{u2, max u1 u2, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHomClass.toMonoidHom.{max u1 u2, u3, max (max u1 u2) u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} A _inst_3) (AlgHomClass.toRingHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.algHomClass.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))) φ₁) (AddMonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MonoidHom.comp.{u2, max u1 u2, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHomClass.toMonoidHom.{max u1 u2, u3, max (max u1 u2) u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} A _inst_3) (AlgHomClass.toRingHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.algHomClass.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))) φ₂) (AddMonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) φ₁ φ₂)
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.alg_hom_ext' AddMonoidAlgebra.algHom_ext'ₓ'. -/
 /-- See note [partially-applied ext lemmas]. -/
 @[ext]
@@ -2426,10 +2348,7 @@ theorem lift_def (F : Multiplicative G →* A) :
 -/
 
 /- warning: add_monoid_algebra.lift_symm_apply -> AddMonoidAlgebra.lift_symm_apply is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : Multiplicative.{u2} G), Eq.{succ u3} A (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) => (Multiplicative.{u2} G) -> A) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (coeFn.{max 1 (max (max (succ (max u2 u1)) (succ u3)) (succ u3) (succ u2)) (max (succ u3) (succ u2)) (succ (max u2 u1)) (succ u3), max (max (succ (max u2 u1)) (succ u3)) (succ u3) (succ u2)} (Equiv.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (fun (_x : Equiv.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) => (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) -> (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u3) (succ u2), max (succ (max u2 u1)) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) -> A) ([anonymous].{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) F (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (fun (_x : Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) => (Multiplicative.{u2} G) -> G) (Equiv.hasCoeToFun.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) x) (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : Multiplicative.{u2} G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (AddMonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Multiplicative.{u2} G) => G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) x) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_symm_apply AddMonoidAlgebra.lift_symm_applyₓ'. -/
 @[simp]
 theorem lift_symm_apply (F : AddMonoidAlgebra k G →ₐ[k] A) (x : Multiplicative G) :
@@ -2501,10 +2420,7 @@ theorem prod_single [CommSemiring k] [AddCommMonoid G] {s : Finset ι} {a : ι 
 end
 
 /- warning: add_monoid_algebra.map_domain_algebra_map -> AddMonoidAlgebra.mapDomain_algebraMap is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} {A : Type.{u3}} {H : Type.{u4}} {F : Type.{u5}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u1, u3} k A _inst_1 _inst_2] [_inst_4 : AddMonoid.{u2} G] [_inst_5 : AddMonoid.{u4} H] [_inst_6 : AddMonoidHomClass.{u5, u2, u4} F G H (AddMonoid.toAddZeroClass.{u2} G _inst_4) (AddMonoid.toAddZeroClass.{u4} H _inst_5)] (f : F) (r : k), Eq.{max (succ u4) (succ u3)} (Finsupp.{u4, u3} H A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))))) (Finsupp.mapDomain.{u2, u4, u3} G H A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))) (coeFn.{succ u5, max (succ u2) (succ u4)} F (fun (_x : F) => G -> H) (FunLike.hasCoeToFun.{succ u5, succ u2, succ u4} F G (fun (_x : G) => H) (AddHomClass.toFunLike.{u5, u2, u4} F G H (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_4)) (AddZeroClass.toHasAdd.{u4} H (AddMonoid.toAddZeroClass.{u4} H _inst_5)) (AddMonoidHomClass.toAddHomClass.{u5, u2, u4} F G H (AddMonoid.toAddZeroClass.{u2} G _inst_4) (AddMonoid.toAddZeroClass.{u4} H _inst_5) _inst_6))) f) (coeFn.{max (succ u1) (succ (max u2 u3)), max (succ u1) (succ (max u2 u3))} (RingHom.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (fun (_x : RingHom.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) => k -> (AddMonoidAlgebra.{u3, u2} A G _inst_2)) (RingHom.hasCoeToFun.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (algebraMap.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_2 _inst_3 _inst_4)) r)) (coeFn.{max (succ u1) (succ (max u4 u3)), max (succ u1) (succ (max u4 u3))} (RingHom.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u4 u3} (AddMonoidAlgebra.{u3, u4} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5))) (fun (_x : RingHom.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u4 u3} (AddMonoidAlgebra.{u3, u4} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5))) => k -> (AddMonoidAlgebra.{u3, u4} A H _inst_2)) (RingHom.hasCoeToFun.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u4 u3} (AddMonoidAlgebra.{u3, u4} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5))) (algebraMap.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5) (AddMonoidAlgebra.algebra.{u3, u4, u1} A H k _inst_1 _inst_2 _inst_3 _inst_5)) r)
-but is expected to have type
-  forall {k : Type.{u4}} {G : Type.{u5}} {A : Type.{u3}} {H : Type.{u2}} {F : Type.{u1}} [_inst_1 : CommSemiring.{u4} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u4, u3} k A _inst_1 _inst_2] [_inst_4 : AddMonoid.{u5} G] [_inst_5 : AddMonoid.{u2} H] [_inst_6 : AddMonoidHomClass.{u1, u5, u2} F G H (AddMonoid.toAddZeroClass.{u5} G _inst_4) (AddMonoid.toAddZeroClass.{u2} H _inst_5)] (f : F) (r : k), Eq.{max (succ u3) (succ u2)} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.mapDomain.{u3, u5, u2} A G _inst_2 H (FunLike.coe.{succ u1, succ u5, succ u2} F G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G) => H) _x) (AddHomClass.toFunLike.{u1, u5, u2} F G H (AddZeroClass.toAdd.{u5} G (AddMonoid.toAddZeroClass.{u5} G _inst_4)) (AddZeroClass.toAdd.{u2} H (AddMonoid.toAddZeroClass.{u2} H _inst_5)) (AddMonoidHomClass.toAddHomClass.{u1, u5, u2} F G H (AddMonoid.toAddZeroClass.{u5} G _inst_4) (AddMonoid.toAddZeroClass.{u2} H _inst_5) _inst_6)) f) (FunLike.coe.{max (max (succ u4) (succ u5)) (succ u3), succ u4, max (succ u5) (succ u3)} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => AddMonoidAlgebra.{u3, u5} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)))))) (algebraMap.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u3, u5, u4} A G k _inst_1 _inst_2 _inst_3 _inst_4)) r)) (FunLike.coe.{max (max (succ u4) (succ u3)) (succ u2), succ u4, max (succ u3) (succ u2)} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => AddMonoidAlgebra.{u3, u2} A H _inst_2) _x) (MulHomClass.toFunLike.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)) (RingHom.instRingHomClassRingHom.{u4, max u3 u2} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)))))) (algebraMap.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5) (AddMonoidAlgebra.algebra.{u3, u2, u4} A H k _inst_1 _inst_2 _inst_3 _inst_5)) r)
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.map_domain_algebra_map AddMonoidAlgebra.mapDomain_algebraMapₓ'. -/
 theorem mapDomain_algebraMap {A H F : Type _} [CommSemiring k] [Semiring A] [Algebra k A]
     [AddMonoid G] [AddMonoid H] [AddMonoidHomClass F G H] (f : F) (r : k) :
Diff
@@ -995,7 +995,7 @@ variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [A
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : G), Commute.{u4} B (Distrib.toHasMul.{u4} B (NonUnitalNonAssocSemiring.toDistrib.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (fun (_x : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) => A -> B) ([anonymous].{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) f x) (coeFn.{max (succ u4) (succ u2), max (succ u2) (succ u4)} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (fun (_x : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) => G -> B) (MonoidHom.hasCoeToFun.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) g y)) -> (AlgHom.{u1, max u3 u2, u4} k (MonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (MonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (MonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_alg_hom MonoidAlgebra.liftNCAlgHomₓ'. -/
 /-- `lift_nc_ring_hom` as a `alg_hom`, for when `f` is an `alg_hom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
@@ -1074,7 +1074,7 @@ theorem lift_def (F : G →* A) : ⇑(lift k G A F) = liftNC ((algebraMap k A :
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : G), Eq.{succ u3} A (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) => G -> A) (MonoidHom.hasCoeToFun.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ u3) (succ u2)) (max (succ u3) (succ u2)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ u3) (succ u2)} (Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) => (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) -> (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u3) (succ u2), max (succ (max u1 u2)) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) -> A) ([anonymous].{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) F (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) x (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))))))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_symm_apply MonoidAlgebra.lift_symm_applyₓ'. -/
 @[simp]
 theorem lift_symm_apply (F : MonoidAlgebra k G →ₐ[k] A) (x : G) :
@@ -1174,7 +1174,7 @@ def GroupSmul.linearMap [Monoid G] [CommSemiring k] (V : Type u₃) [AddCommMono
 lean 3 declaration is
   forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] (V : Type.{u3}) [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_2) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} k V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} k V (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] (g : G) (v : V), Eq.{succ u3} V (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V V _inst_3 _inst_3 _inst_4 _inst_4) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V V _inst_3 _inst_3 _inst_4 _inst_4) => V -> V) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V V (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_3 _inst_4 _inst_4 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) (MonoidAlgebra.GroupSmul.linearMap.{u1, u2, u3} k G _inst_1 _inst_2 V _inst_3 _inst_4 _inst_5 _inst_6 g) v) (SMul.smul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (SMulZeroClass.toHasSmul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MulZeroClass.toHasZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) g (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))))))) v)
 but is expected to have type
-  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] (V : Type.{u3}) [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] (g : G) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => V) v) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V V _inst_3 _inst_3 _inst_4 _inst_4) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => V) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V V (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_3 _inst_4 _inst_4 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) (MonoidAlgebra.GroupSmul.linearMap.{u1, u2, u3} k G _inst_1 _inst_2 V _inst_3 _inst_4 _inst_5 _inst_6 g) v) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)
+  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] (V : Type.{u3}) [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] (g : G) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => V) v) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V V _inst_3 _inst_3 _inst_4 _inst_4) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => V) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V V (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_3 _inst_4 _inst_4 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) (MonoidAlgebra.GroupSmul.linearMap.{u1, u2, u3} k G _inst_1 _inst_2 V _inst_3 _inst_4 _inst_5 _inst_6 g) v) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.group_smul.linear_map_apply MonoidAlgebra.GroupSmul.linearMap_applyₓ'. -/
 @[simp]
 theorem GroupSmul.linearMap_apply [Monoid G] [CommSemiring k] (V : Type u₃) [AddCommMonoid V]
@@ -1199,7 +1199,7 @@ include h
 lean 3 declaration is
   forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₃}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₁ u₂, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toHasSmul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toAddZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u₂, u₁} k G (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u₁, u₂, u₁} k G k (CommSemiring.toSemiring.{u₁} k _inst_2) (SMulWithZero.toSmulZeroClass.{u₁, u₁} k k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MulZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u₁, u₃} k V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u₁, u₃} k V (MulZeroClass.toHasZero.{u₁} k (MulZeroOneClass.toMulZeroClass.{u₁} k (MonoidWithZero.toMulZeroOneClass.{u₁} k (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₃} W] [_inst_8 : Module.{u₁, u₃} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₁ u₂, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (SMulZeroClass.toHasSmul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toAddZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u₂, u₁} k G (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u₁, u₂, u₁} k G k (CommSemiring.toSemiring.{u₁} k _inst_2) (SMulWithZero.toSmulZeroClass.{u₁, u₁} k k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MulZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toHasSmul.{u₁, u₃} k W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{u₁, u₃} k W (MulZeroClass.toHasZero.{u₁} k (MulZeroOneClass.toMulZeroClass.{u₁} k (MonoidWithZero.toMulZeroOneClass.{u₁} k (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{u₁, u₃} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8), (forall (g : G) (v : V), Eq.{succ u₃} W (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (SMul.smul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (SMulZeroClass.toHasSmul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (MulZeroClass.toHasZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (Finsupp.single.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) g (OfNat.ofNat.{u₁} k 1 (OfNat.mk.{u₁} k 1 (One.one.{u₁} k (AddMonoidWithOne.toOne.{u₁} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u₁} k (NonAssocSemiring.toAddCommMonoidWithOne.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))))))) v)) (SMul.smul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (SMulZeroClass.toHasSmul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (MulZeroClass.toHasZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (Finsupp.single.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) g (OfNat.ofNat.{u₁} k 1 (OfNat.mk.{u₁} k 1 (One.one.{u₁} k (AddMonoidWithOne.toOne.{u₁} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u₁} k (NonAssocSemiring.toAddCommMonoidWithOne.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))))))) (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) -> (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toNonAssocSemiring.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9)
 but is expected to have type
-  forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₄}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₂ u₁, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₂ u₁, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u₁, u₃} k V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u₁, u₃} k V (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₄} W] [_inst_8 : Module.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₂ u₁, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₂ u₁, u₄} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u₁, u₄} k W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u₁, u₄} k W (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u₁, u₄} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8), (forall (g : G) (v : V), Eq.{succ u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (HSMul.hSMul.{max u₂ u₁, u₄, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (instHSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) -> (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₂ u₁} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) (Monoid.toMulOneClass.{u₂} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9)
+  forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₄}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₂ u₁, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₂ u₁, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u₁, u₃} k V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u₁, u₃} k V (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₄} W] [_inst_8 : Module.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₂ u₁, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₂ u₁, u₄} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u₁, u₄} k W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u₁, u₄} k W (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u₁, u₄} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8), (forall (g : G) (v : V), Eq.{succ u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (HSMul.hSMul.{max u₂ u₁, u₄, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (instHSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) -> (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₂ u₁} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) (Monoid.toMulOneClass.{u₂} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.equivariant_of_linear_of_comm MonoidAlgebra.equivariantOfLinearOfCommₓ'. -/
 /-- Build a `k[G]`-linear map from a `k`-linear map and evidence that it is `G`-equivariant. -/
 def equivariantOfLinearOfComm : V →ₗ[MonoidAlgebra k G] W
@@ -1221,7 +1221,7 @@ def equivariantOfLinearOfComm : V →ₗ[MonoidAlgebra k G] W
 lean 3 declaration is
   forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₃}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₁ u₂, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toHasSmul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toAddZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u₂, u₁} k G (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u₁, u₂, u₁} k G k (CommSemiring.toSemiring.{u₁} k _inst_2) (SMulWithZero.toSmulZeroClass.{u₁, u₁} k k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MulZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u₁, u₃} k V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u₁, u₃} k V (MulZeroClass.toHasZero.{u₁} k (MulZeroOneClass.toMulZeroClass.{u₁} k (MonoidWithZero.toMulZeroOneClass.{u₁} k (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₃} W] [_inst_8 : Module.{u₁, u₃} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₁ u₂, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (SMulZeroClass.toHasSmul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toAddZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u₂, u₁} k G (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u₁, u₂, u₁} k G k (CommSemiring.toSemiring.{u₁} k _inst_2) (SMulWithZero.toSmulZeroClass.{u₁, u₁} k k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MulZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toHasSmul.{u₁, u₃} k W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{u₁, u₃} k W (MulZeroClass.toHasZero.{u₁} k (MulZeroOneClass.toMulZeroClass.{u₁} k (MonoidWithZero.toMulZeroOneClass.{u₁} k (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{u₁, u₃} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (h : forall (g : G) (v : V), Eq.{succ u₃} W (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (SMul.smul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (SMulZeroClass.toHasSmul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (MulZeroClass.toHasZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (Finsupp.single.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) g (OfNat.ofNat.{u₁} k 1 (OfNat.mk.{u₁} k 1 (One.one.{u₁} k (AddMonoidWithOne.toOne.{u₁} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u₁} k (NonAssocSemiring.toAddCommMonoidWithOne.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))))))) v)) (SMul.smul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (SMulZeroClass.toHasSmul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (MulZeroClass.toHasZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (Finsupp.single.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) g (OfNat.ofNat.{u₁} k 1 (OfNat.mk.{u₁} k 1 (One.one.{u₁} k (AddMonoidWithOne.toOne.{u₁} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u₁} k (NonAssocSemiring.toAddCommMonoidWithOne.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))))))) (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) (v : V), Eq.{succ u₃} W (coeFn.{succ u₃, succ u₃} (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toNonAssocSemiring.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) (fun (_x : LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toNonAssocSemiring.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) => V -> W) (LinearMap.hasCoeToFun.{max u₁ u₂, max u₁ u₂, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_7 _inst_5 _inst_9 (RingHom.id.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toNonAssocSemiring.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)))) (MonoidAlgebra.equivariantOfLinearOfComm.{u₁, u₂, u₃} k G _inst_1 _inst_2 V W _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 f h) v) (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v)
 but is expected to have type
-  forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₄}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₂ u₁, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₂ u₁, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u₁, u₃} k V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u₁, u₃} k V (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₄} W] [_inst_8 : Module.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₂ u₁, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₂ u₁, u₄} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u₁, u₄} k W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u₁, u₄} k W (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u₁, u₄} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (h : forall (g : G) (v : V), Eq.{succ u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (HSMul.hSMul.{max u₂ u₁, u₄, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (instHSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) (v : V), Eq.{succ u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₂ u₁} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) (Monoid.toMulOneClass.{u₂} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_7 _inst_5 _inst_9 (RingHom.id.{max u₂ u₁} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) (Monoid.toMulOneClass.{u₂} G _inst_1)))) (MonoidAlgebra.equivariantOfLinearOfComm.{u₁, u₂, u₃, u₄} k G _inst_1 _inst_2 V W _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 f h) v) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v)
+  forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₄}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₂ u₁, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₂ u₁, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u₁, u₃} k V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u₁, u₃} k V (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₄} W] [_inst_8 : Module.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₂ u₁, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₂ u₁, u₄} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u₁, u₄} k W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u₁, u₄} k W (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u₁, u₄} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (h : forall (g : G) (v : V), Eq.{succ u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (HSMul.hSMul.{max u₂ u₁, u₄, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (instHSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) (v : V), Eq.{succ u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) v) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₂ u₁} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) (Monoid.toMulOneClass.{u₂} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_7 _inst_5 _inst_9 (RingHom.id.{max u₂ u₁} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) (Monoid.toMulOneClass.{u₂} G _inst_1)))) (MonoidAlgebra.equivariantOfLinearOfComm.{u₁, u₂, u₃, u₄} k G _inst_1 _inst_2 V W _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 f h) v) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.equivariant_of_linear_of_comm_apply MonoidAlgebra.equivariantOfLinearOfComm_applyₓ'. -/
 @[simp]
 theorem equivariantOfLinearOfComm_apply (v : V) : (equivariantOfLinearOfComm f h) v = f v :=
@@ -2349,7 +2349,7 @@ variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [A
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : Multiplicative.{u2} G), Commute.{u4} B (Distrib.toHasMul.{u4} B (NonUnitalNonAssocSemiring.toDistrib.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (fun (_x : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) => A -> B) ([anonymous].{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) f x) (coeFn.{max (succ u4) (succ u2), max (succ u2) (succ u4)} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (fun (_x : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) => (Multiplicative.{u2} G) -> B) (MonoidHom.hasCoeToFun.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (AddMonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : Multiplicative.{u2} G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (AddMonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : Multiplicative.{u2} G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (AddMonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_alg_hom AddMonoidAlgebra.liftNCAlgHomₓ'. -/
 /-- `lift_nc_ring_hom` as a `alg_hom`, for when `f` is an `alg_hom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : Multiplicative G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
@@ -2429,7 +2429,7 @@ theorem lift_def (F : Multiplicative G →* A) :
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : Multiplicative.{u2} G), Eq.{succ u3} A (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) => (Multiplicative.{u2} G) -> A) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (coeFn.{max 1 (max (max (succ (max u2 u1)) (succ u3)) (succ u3) (succ u2)) (max (succ u3) (succ u2)) (succ (max u2 u1)) (succ u3), max (max (succ (max u2 u1)) (succ u3)) (succ u3) (succ u2)} (Equiv.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (fun (_x : Equiv.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) => (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) -> (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u3) (succ u2), max (succ (max u2 u1)) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) -> A) ([anonymous].{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) F (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (fun (_x : Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) => (Multiplicative.{u2} G) -> G) (Equiv.hasCoeToFun.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) x) (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))))))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : Multiplicative.{u2} G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (AddMonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Multiplicative.{u2} G) => G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) x) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : Multiplicative.{u2} G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (AddMonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Multiplicative.{u2} G) => G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) x) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_symm_apply AddMonoidAlgebra.lift_symm_applyₓ'. -/
 @[simp]
 theorem lift_symm_apply (F : AddMonoidAlgebra k G →ₐ[k] A) (x : Multiplicative G) :
Diff
@@ -166,7 +166,7 @@ variable [Semiring R]
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] [_inst_3 : Semiring.{u3} R] {g_hom : Type.{u4}} [_inst_4 : MulHomClass.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : g_hom) (a : MonoidAlgebra.{u1, u2} k G _inst_1) (b : MonoidAlgebra.{u1, u2} k G _inst_1), (forall {x : G} {y : G}, (Membership.Mem.{u2, u2} G (Finset.{u2} G) (Finset.hasMem.{u2} G) y (Finsupp.support.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a)) -> (Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) b x)) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g y))) -> (Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) a) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) b)))
 but is expected to have type
-  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Mul.{u4} G] [_inst_3 : Semiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : MulHomClass.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : g_hom) (a : MonoidAlgebra.{u3, u4} k G _inst_1) (b : MonoidAlgebra.{u3, u4} k G _inst_1), (forall {x : G} {y : G}, (Membership.mem.{u4, u4} G (Finset.{u4} G) (Finset.instMembershipFinset.{u4} G) y (Finsupp.support.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1)) a)) -> (Commute.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) _inst_3))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u3} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g y))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.mul.{u3, u4} k G _inst_1 _inst_2)) a b)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.mul.{u3, u4} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) a) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) b)))
+  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Mul.{u4} G] [_inst_3 : Semiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : MulHomClass.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : g_hom) (a : MonoidAlgebra.{u3, u4} k G _inst_1) (b : MonoidAlgebra.{u3, u4} k G _inst_1), (forall {x : G} {y : G}, (Membership.mem.{u4, u4} G (Finset.{u4} G) (Finset.instMembershipFinset.{u4} G) y (Finsupp.support.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1)) a)) -> (Commute.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) _inst_3))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u3} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g y))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.mul.{u3, u4} k G _inst_1 _inst_2)) a b)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.mul.{u3, u4} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) a) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) b)))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_mul MonoidAlgebra.liftNC_mulₓ'. -/
 theorem liftNC_mul {g_hom : Type _} [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)) :
@@ -220,7 +220,7 @@ theorem one_def : (1 : MonoidAlgebra k G) = single 1 1 :=
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : NonAssocSemiring.{u3} R] [_inst_2 : Semiring.{u1} k] [_inst_3 : One.{u2} G] {g_hom : Type.{u4}} [_inst_4 : OneHomClass.{u4, u2, u3} g_hom G R _inst_3 (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1)))] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (g : g_hom), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_2))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_1))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_2))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_1))))) => (MonoidAlgebra.{u1, u2} k G _inst_2) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_2))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_1))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_1) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1)))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1 (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (OneHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_3 (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))) _inst_4)) g)) (OfNat.ofNat.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) 1 (OfNat.mk.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) 1 (One.one.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.one.{u1, u2} k G _inst_2 _inst_3))))) (OfNat.ofNat.{u3} R 1 (OfNat.mk.{u3} R 1 (One.one.{u3} R (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))))))
 but is expected to have type
-  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] [_inst_2 : Semiring.{u3} k] [_inst_3 : One.{u4} G] {g_hom : Type.{u2}} [_inst_4 : OneHomClass.{u2, u4, u1} g_hom G R _inst_3 (NonAssocSemiring.toOne.{u1} R _inst_1)] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1) (g : g_hom), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (MonoidAlgebra.{u3, u4} k G _inst_2) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_2) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_2))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R _inst_1)))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1) k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1 (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1)) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1262 : G) => R) _x) (OneHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_3 (NonAssocSemiring.toOne.{u1} R _inst_1) _inst_4) g)) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) 1 (One.toOfNat1.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) (NonAssocSemiring.toOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) _inst_1)))
+  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] [_inst_2 : Semiring.{u3} k] [_inst_3 : One.{u4} G] {g_hom : Type.{u2}} [_inst_4 : OneHomClass.{u2, u4, u1} g_hom G R _inst_3 (NonAssocSemiring.toOne.{u1} R _inst_1)] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1) (g : g_hom), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (MonoidAlgebra.{u3, u4} k G _inst_2) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_2) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_2))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R _inst_1)))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1) k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1 (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1)) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1264 : G) => R) _x) (OneHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_3 (NonAssocSemiring.toOne.{u1} R _inst_1) _inst_4) g)) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) 1 (One.toOfNat1.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) (NonAssocSemiring.toOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) _inst_1)))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_one MonoidAlgebra.liftNC_oneₓ'. -/
 @[simp]
 theorem liftNC_one {g_hom : Type _} [OneHomClass g_hom G R] (f : k →+* R) (g : g_hom) :
@@ -282,7 +282,7 @@ variable [Semiring R]
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : G), Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f x) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => G -> R) (MonoidHom.hasCoeToFun.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g y)) -> (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : G), Commute.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) x) (NonUnitalNonAssocSemiring.toMul.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) x) (Semiring.toNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) x) _inst_3))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.instRingHomClassRingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) f x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => R) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G R (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g y)) -> (RingHom.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : G), Commute.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) x) (NonUnitalNonAssocSemiring.toMul.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) x) (Semiring.toNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) x) _inst_3))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.instRingHomClassRingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) f x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => R) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G R (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g y)) -> (RingHom.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_ring_hom MonoidAlgebra.liftNCRingHomₓ'. -/
 /-- `lift_nc` as a `ring_hom`, for when `f x` and `g y` commute -/
 def liftNCRingHom (f : k →+* R) (g : G →* R) (h_comm : ∀ x y, Commute (f x) (g y)) :
@@ -477,7 +477,7 @@ section
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {α₂ : Type.{u3}} [_inst_2 : Semiring.{u2} β] [_inst_3 : One.{u1} α] [_inst_4 : One.{u3} α₂] {F : Type.{u4}} [_inst_5 : OneHomClass.{u4, u1, u3} F α α₂ _inst_3 _inst_4] (f : F), Eq.{max (succ u3) (succ u2)} (Finsupp.{u3, u2} α₂ β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))))))) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (OneHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) (OfNat.ofNat.{max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) 1 (OfNat.mk.{max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) 1 (One.one.{max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) (MonoidAlgebra.one.{u2, u1} β α _inst_2 _inst_3))))) (OfNat.ofNat.{max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) 1 (OfNat.mk.{max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) 1 (One.one.{max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (MonoidAlgebra.one.{u2, u3} β α₂ _inst_2 _inst_4))))
 but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : One.{u4} α] [_inst_4 : One.{u2} α₂] {F : Type.{u1}} [_inst_5 : OneHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1262 : α) => α₂) _x) (OneHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (OfNat.ofNat.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) 1 (One.toOfNat1.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.one.{u3, u4} β α _inst_2 _inst_3)))) (OfNat.ofNat.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) 1 (One.toOfNat1.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.one.{u3, u2} β α₂ _inst_2 _inst_4)))
+  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : One.{u4} α] [_inst_4 : One.{u2} α₂] {F : Type.{u1}} [_inst_5 : OneHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1264 : α) => α₂) _x) (OneHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (OfNat.ofNat.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) 1 (One.toOfNat1.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.one.{u3, u4} β α _inst_2 _inst_3)))) (OfNat.ofNat.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) 1 (One.toOfNat1.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.one.{u3, u2} β α₂ _inst_2 _inst_4)))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.map_domain_one MonoidAlgebra.mapDomain_oneₓ'. -/
 /-- Like `finsupp.map_domain_zero`, but for the `1` we define in this file -/
 @[simp]
@@ -491,7 +491,7 @@ theorem mapDomain_one {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β]
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {α₂ : Type.{u3}} [_inst_2 : Semiring.{u2} β] [_inst_3 : Mul.{u1} α] [_inst_4 : Mul.{u3} α₂] {F : Type.{u4}} [_inst_5 : MulHomClass.{u4, u1, u3} F α α₂ _inst_3 _inst_4] (f : F) (x : MonoidAlgebra.{u2, u1} β α _inst_2) (y : MonoidAlgebra.{u2, u1} β α _inst_2), Eq.{max (succ u3) (succ u2)} (Finsupp.{u3, u2} α₂ β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))))))) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (MulHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) (MonoidAlgebra.{u2, u1} β α _inst_2) (MonoidAlgebra.{u2, u1} β α _inst_2) (instHMul.{max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) (MonoidAlgebra.mul.{u2, u1} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (instHMul.{max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (MonoidAlgebra.mul.{u2, u3} β α₂ _inst_2 _inst_4)) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (MulHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) x) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (MulHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) y))
 but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : Mul.{u4} α] [_inst_4 : Mul.{u2} α₂] {F : Type.{u1}} [_inst_5 : MulHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F) (x : MonoidAlgebra.{u3, u4} β α _inst_2) (y : MonoidAlgebra.{u3, u4} β α _inst_2), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (HMul.hMul.{max u4 u3, max u4 u3, max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.{u3, u4} β α _inst_2) (instHMul.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.mul.{u3, u4} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u3 u2, max u3 u2, max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (instHMul.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mul.{u3, u2} β α₂ _inst_2 _inst_4)) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) x) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) y))
+  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : Mul.{u4} α] [_inst_4 : Mul.{u2} α₂] {F : Type.{u1}} [_inst_5 : MulHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F) (x : MonoidAlgebra.{u3, u4} β α _inst_2) (y : MonoidAlgebra.{u3, u4} β α _inst_2), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (HMul.hMul.{max u4 u3, max u4 u3, max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.{u3, u4} β α _inst_2) (instHMul.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.mul.{u3, u4} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u3 u2, max u3 u2, max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (instHMul.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mul.{u3, u2} β α₂ _inst_2 _inst_4)) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) x) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) y))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.map_domain_mul MonoidAlgebra.mapDomain_mulₓ'. -/
 /-- Like `finsupp.map_domain_add`, but for the convolutive multiplication we define in this file -/
 theorem mapDomain_mul {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [Mul α] [Mul α₂]
@@ -539,7 +539,7 @@ end
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (g : G) (r : k), Eq.{succ (max u1 u2)} (MonoidAlgebra.{u1, u2} k G _inst_1) (SMul.smul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) r (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => G -> (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) g)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) g r)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (g : G) (r : k), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (instHSMul.{u1, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (SMulZeroClass.toSMul.{u1, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (MulZeroOneClass.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G _inst_2) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) g)) (MonoidAlgebra.single.{u1, u2} k G _inst_1 g r)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (g : G) (r : k), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (instHSMul.{u1, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (SMulZeroClass.toSMul.{u1, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (MulZeroOneClass.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G _inst_2) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) g)) (MonoidAlgebra.single.{u1, u2} k G _inst_1 g r)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.smul_of MonoidAlgebra.smul_ofₓ'. -/
 theorem smul_of [MulOneClass G] (g : G) (r : k) : r • of k G g = single g r := by simp
 #align monoid_algebra.smul_of MonoidAlgebra.smul_of
@@ -548,7 +548,7 @@ theorem smul_of [MulOneClass G] (g : G) (r : k) : r • of k G g = single g r :=
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Nontrivial.{u1} k], Function.Injective.{succ u2, succ (max u1 u2)} G (MonoidAlgebra.{u1, u2} k G _inst_1) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => G -> (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Nontrivial.{u1} k], Function.Injective.{succ u2, max (succ u1) (succ u2)} G (MonoidAlgebra.{u1, u2} k G _inst_1) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G _inst_2) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Nontrivial.{u1} k], Function.Injective.{succ u2, max (succ u1) (succ u2)} G (MonoidAlgebra.{u1, u2} k G _inst_1) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G _inst_2) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.of_injective MonoidAlgebra.of_injectiveₓ'. -/
 theorem of_injective [MulOneClass G] [Nontrivial k] : Function.Injective (of k G) := fun a b h => by
   simpa using (single_eq_single_iff _ _ _ _).mp h
@@ -678,7 +678,7 @@ theorem single_mul_apply_of_not_exists_mul [Mul G] (r : k) {g g' : G} (x : Monoi
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] {R : Type.{u3}} [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u1, u2} k G _inst_1), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => G -> R) (MonoidHom.hasCoeToFun.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) (SMul.smul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) c φ)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f c) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => G -> R) (MonoidHom.hasCoeToFun.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) φ))
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} [_inst_1 : Semiring.{u2} k] [_inst_2 : MulOneClass.{u3} G] {R : Type.{u1}} [_inst_3 : Semiring.{u1} R] (f : RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u2, u3} k G _inst_1), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MulZeroOneClass.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R (MulOneClass.toMul.{u3} G _inst_2) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MulZeroOneClass.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) φ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) _inst_3)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f c) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R (MulOneClass.toMul.{u3} G _inst_2) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) φ))
+  forall {k : Type.{u2}} {G : Type.{u3}} [_inst_1 : Semiring.{u2} k] [_inst_2 : MulOneClass.{u3} G] {R : Type.{u1}} [_inst_3 : Semiring.{u1} R] (f : RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u2, u3} k G _inst_1), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MulZeroOneClass.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R (MulOneClass.toMul.{u3} G _inst_2) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MulZeroOneClass.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) φ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) _inst_3)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f c) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R (MulOneClass.toMul.{u3} G _inst_2) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) φ))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_smul 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 φ :=
@@ -872,7 +872,7 @@ def mapDomainRingHom (k : Type _) {H F : Type _} [Semiring k] [Monoid G] [Monoid
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Semiring.{u3} R] {f : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)} {g : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)}, (forall (b : k), Eq.{succ u3} R (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) b)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) b))) -> (forall (a : G), Eq.{succ u3} R (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f g)
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : MulOneClass.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (forall (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b))) -> (forall (a : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1)))))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
+  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : MulOneClass.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (forall (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b))) -> (forall (a : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1)))))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.ring_hom_ext MonoidAlgebra.ringHom_extₓ'. -/
 /-- If two ring homomorphisms from `monoid_algebra k G` are equal on all `single a 1`
 and `single 1 b`, then they are equal. -/
@@ -938,7 +938,7 @@ def singleOneAlgHom {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Mo
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {A : Type.{u3}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u1, u3} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u2} G], Eq.{max (succ u1) (succ (max u3 u2))} (k -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (coeFn.{max (succ u1) (succ (max u3 u2)), max (succ u1) (succ (max u3 u2))} (RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (fun (_x : RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) => k -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (RingHom.hasCoeToFun.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (algebraMap.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u1, succ u3, max (succ u2) (succ u3)} k A (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.single.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G (Monoid.toMulOneClass.{u2} G _inst_4)))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (fun (_x : RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) => k -> A) (RingHom.hasCoeToFun.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (algebraMap.{u1, u3} k A _inst_1 _inst_2 _inst_3)))
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} k] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u3} G], Eq.{max (max (succ u2) (succ u3)) (succ u1)} (forall (ᾰ : k), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) ᾰ) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u2, max (succ u3) (succ u1)} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u2, u3, u1} k G A _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u2, succ u1, max (succ u3) (succ u1)} k A (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.single.{u1, u3} A G _inst_2 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (Monoid.toOne.{u3} G _inst_4)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (algebraMap.{u2, u1} k A _inst_1 _inst_2 _inst_3)))
+  forall {k : Type.{u2}} {G : Type.{u3}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} k] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u3} G], Eq.{max (max (succ u2) (succ u3)) (succ u1)} (forall (ᾰ : k), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) ᾰ) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u2, max (succ u3) (succ u1)} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u2, u3, u1} k G A _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u2, succ u1, max (succ u3) (succ u1)} k A (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.single.{u1, u3} A G _inst_2 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (Monoid.toOne.{u3} G _inst_4)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (algebraMap.{u2, u1} k A _inst_1 _inst_2 _inst_3)))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.coe_algebra_map MonoidAlgebra.coe_algebraMapₓ'. -/
 @[simp]
 theorem coe_algebraMap {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G] :
@@ -950,7 +950,7 @@ theorem coe_algebraMap {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A]
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] (a : G) (b : k), Eq.{max (succ u2) (succ u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) a b) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (instHMul.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (coeFn.{max (succ u1) (succ (max u1 u2)), max (succ u1) (succ (max u1 u2))} (RingHom.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (fun (_x : RingHom.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) => k -> (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1))) (RingHom.hasCoeToFun.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (algebraMap.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) b) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) => G -> (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) a))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] (a : G) (b : k), Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) a b) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) (instHMul.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (RingHom.instRingHomClassRingHom.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (algebraMap.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) b) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) a))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] (a : G) (b : k), Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) a b) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) (instHMul.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (RingHom.instRingHomClassRingHom.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (algebraMap.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) b) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) a))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_eq_algebra_map_mul_of 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 := by simp
@@ -960,7 +960,7 @@ theorem single_eq_algebraMap_mul_of [CommSemiring k] [Monoid G] (a : G) (b : k)
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {A : Type.{u3}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u1, u3} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u2} G] (a : G) (b : k), Eq.{max (succ u2) (succ u3)} (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.single.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2)))) a (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (fun (_x : RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) => k -> A) (RingHom.hasCoeToFun.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (algebraMap.{u1, u3} k A _inst_1 _inst_2 _inst_3) b)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (instHMul.{max u2 u3} (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (MonoidAlgebra.mul.{u3, u2} A G _inst_2 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_4)))) (coeFn.{max (succ u1) (succ (max u3 u2)), max (succ u1) (succ (max u3 u2))} (RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (fun (_x : RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) => k -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (RingHom.hasCoeToFun.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (algebraMap.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_2 _inst_3 _inst_4)) b) (coeFn.{max (succ (max u3 u2)) (succ u2), max (succ u2) (succ (max u3 u2))} (MonoidHom.{u2, max u3 u2} G (MonoidAlgebra.{u3, u2} A G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4))))) (fun (_x : MonoidHom.{u2, max u3 u2} G (MonoidAlgebra.{u3, u2} A G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4))))) => G -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (MonoidHom.hasCoeToFun.{u2, max u3 u2} G (MonoidAlgebra.{u3, u2} A G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4))))) (MonoidAlgebra.of.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4)) a))
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} k] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u3} G] (a : G) (b : k), Eq.{max (succ u3) (succ u1)} (MonoidAlgebra.{u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => A) b) G _inst_2) (MonoidAlgebra.single.{u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => A) b) G _inst_2 a (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (algebraMap.{u2, u1} k A _inst_1 _inst_2 _inst_3) b)) (HMul.hMul.{max u3 u1, max u3 u1, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u3} A G _inst_2) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) (instHMul.{max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) (MonoidAlgebra.mul.{u1, u3} A G _inst_2 (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G _inst_4)))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u2, max (succ u3) (succ u1)} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u2, u3, u1} k G A _inst_1 _inst_2 _inst_3 _inst_4)) b) (FunLike.coe.{max (succ u3) (succ u1), succ u3, max (succ u3) (succ u1)} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max u3 u1, u3, max u3 u1} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (MonoidAlgebra.{u1, u3} A G _inst_2) (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G _inst_4)) (MulOneClass.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, max u3 u1} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4)))) (MonoidHom.monoidHomClass.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))))) (MonoidAlgebra.of.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4)) a))
+  forall {k : Type.{u2}} {G : Type.{u3}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} k] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u3} G] (a : G) (b : k), Eq.{max (succ u3) (succ u1)} (MonoidAlgebra.{u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => A) b) G _inst_2) (MonoidAlgebra.single.{u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => A) b) G _inst_2 a (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (algebraMap.{u2, u1} k A _inst_1 _inst_2 _inst_3) b)) (HMul.hMul.{max u3 u1, max u3 u1, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u3} A G _inst_2) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) (instHMul.{max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) (MonoidAlgebra.mul.{u1, u3} A G _inst_2 (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G _inst_4)))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u2, max (succ u3) (succ u1)} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u2, u3, u1} k G A _inst_1 _inst_2 _inst_3 _inst_4)) b) (FunLike.coe.{max (succ u3) (succ u1), succ u3, max (succ u3) (succ u1)} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max u3 u1, u3, max u3 u1} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (MonoidAlgebra.{u1, u3} A G _inst_2) (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G _inst_4)) (MulOneClass.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, max u3 u1} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4)))) (MonoidHom.monoidHomClass.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))))) (MonoidAlgebra.of.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4)) a))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_algebra_map_eq_algebra_map_mul_of 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) :
@@ -971,7 +971,7 @@ theorem single_algebraMap_eq_algebraMap_mul_of {A : Type _} [CommSemiring k] [Se
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] {p : (MonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : MonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) => G -> (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) g)) -> (forall (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Finsupp.add.{u2, u1} G k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) f g))) -> (forall (r : k) (f : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (SMul.smul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) r f))) -> (p f)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] {p : (MonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : MonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) g)) -> (forall (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r f))) -> (p f)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] {p : (MonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : MonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) g)) -> (forall (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r f))) -> (p f)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.induction_on 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))
@@ -995,7 +995,7 @@ variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [A
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : G), Commute.{u4} B (Distrib.toHasMul.{u4} B (NonUnitalNonAssocSemiring.toDistrib.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (fun (_x : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) => A -> B) ([anonymous].{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) f x) (coeFn.{max (succ u4) (succ u2), max (succ u2) (succ u4)} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (fun (_x : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) => G -> B) (MonoidHom.hasCoeToFun.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) g y)) -> (AlgHom.{u1, max u3 u2, u4} k (MonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (MonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (MonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_alg_hom MonoidAlgebra.liftNCAlgHomₓ'. -/
 /-- `lift_nc_ring_hom` as a `alg_hom`, for when `f` is an `alg_hom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
@@ -1074,7 +1074,7 @@ theorem lift_def (F : G →* A) : ⇑(lift k G A F) = liftNC ((algebraMap k A :
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : G), Eq.{succ u3} A (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) => G -> A) (MonoidHom.hasCoeToFun.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ u3) (succ u2)) (max (succ u3) (succ u2)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ u3) (succ u2)} (Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) => (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) -> (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u3) (succ u2), max (succ (max u1 u2)) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) -> A) ([anonymous].{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) F (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) x (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))))))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_symm_apply MonoidAlgebra.lift_symm_applyₓ'. -/
 @[simp]
 theorem lift_symm_apply (F : MonoidAlgebra k G →ₐ[k] A) (x : G) :
@@ -1133,7 +1133,7 @@ def mapDomainNonUnitalAlgHom (k A : Type _) [CommSemiring k] [Semiring A] [Algeb
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_2 : Monoid.{u1} G] (k : Type.{u2}) (A : Type.{u3}) {H : Type.{u4}} {F : Type.{u5}} [_inst_7 : CommSemiring.{u2} k] [_inst_8 : Semiring.{u3} A] [_inst_9 : Algebra.{u2, u3} k A _inst_7 _inst_8] [_inst_10 : Monoid.{u4} H] [_inst_11 : MonoidHomClass.{u5, u1, u4} F G H (Monoid.toMulOneClass.{u1} G _inst_2) (Monoid.toMulOneClass.{u4} H _inst_10)] (f : F) (r : k), Eq.{max (succ u4) (succ u3)} (Finsupp.{u4, u3} H A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_8))))))) (Finsupp.mapDomain.{u1, u4, u3} G H A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_8))) (coeFn.{succ u5, max (succ u1) (succ u4)} F (fun (_x : F) => G -> H) (FunLike.hasCoeToFun.{succ u5, succ u1, succ u4} F G (fun (_x : G) => H) (MulHomClass.toFunLike.{u5, u1, u4} F G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G _inst_2)) (MulOneClass.toHasMul.{u4} H (Monoid.toMulOneClass.{u4} H _inst_10)) (MonoidHomClass.toMulHomClass.{u5, u1, u4} F G H (Monoid.toMulOneClass.{u1} G _inst_2) (Monoid.toMulOneClass.{u4} H _inst_10) _inst_11))) f) (coeFn.{max (succ u2) (succ (max u3 u1)), max (succ u2) (succ (max u3 u1))} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u3, u1} A G _inst_8) (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2))) (fun (_x : RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u3, u1} A G _inst_8) (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2))) => k -> (MonoidAlgebra.{u3, u1} A G _inst_8)) (RingHom.hasCoeToFun.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u3, u1} A G _inst_8) (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2) (MonoidAlgebra.algebra.{u2, u1, u3} k G A _inst_7 _inst_8 _inst_9 _inst_2)) r)) (coeFn.{max (succ u2) (succ (max u3 u4)), max (succ u2) (succ (max u3 u4))} (RingHom.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u4} (MonoidAlgebra.{u3, u4} A H _inst_8) (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10))) (fun (_x : RingHom.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u4} (MonoidAlgebra.{u3, u4} A H _inst_8) (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10))) => k -> (MonoidAlgebra.{u3, u4} A H _inst_8)) (RingHom.hasCoeToFun.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u4} (MonoidAlgebra.{u3, u4} A H _inst_8) (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10))) (algebraMap.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10) (MonoidAlgebra.algebra.{u2, u4, u3} k H A _inst_7 _inst_8 _inst_9 _inst_10)) r)
 but is expected to have type
-  forall {G : Type.{u5}} [_inst_2 : Monoid.{u5} G] (k : Type.{u4}) (A : Type.{u3}) {H : Type.{u2}} {F : Type.{u1}} [_inst_7 : CommSemiring.{u4} k] [_inst_8 : Semiring.{u3} A] [_inst_9 : Algebra.{u4, u3} k A _inst_7 _inst_8] [_inst_10 : Monoid.{u2} H] [_inst_11 : MonoidHomClass.{u1, u5, u2} F G H (Monoid.toMulOneClass.{u5} G _inst_2) (Monoid.toMulOneClass.{u2} H _inst_10)] (f : F) (r : k), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.mapDomain.{u3, u5, u2} A G _inst_8 H (FunLike.coe.{succ u1, succ u5, succ u2} F G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{u1, u5, u2} F G H (MulOneClass.toMul.{u5} G (Monoid.toMulOneClass.{u5} G _inst_2)) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H _inst_10)) (MonoidHomClass.toMulHomClass.{u1, u5, u2} F G H (Monoid.toMulOneClass.{u5} G _inst_2) (Monoid.toMulOneClass.{u2} H _inst_10) _inst_11)) f) (FunLike.coe.{max (max (succ u5) (succ u4)) (succ u3), succ u4, max (succ u5) (succ u3)} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u3, u5} A G _inst_8) _x) (MulHomClass.toFunLike.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)))) (NonUnitalNonAssocSemiring.toMul.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)) (RingHom.instRingHomClassRingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)))))) (algebraMap.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2) (MonoidAlgebra.algebra.{u4, u5, u3} k G A _inst_7 _inst_8 _inst_9 _inst_2)) r)) (FunLike.coe.{max (max (succ u4) (succ u3)) (succ u2), succ u4, max (succ u3) (succ u2)} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u3, u2} A H _inst_8) _x) (MulHomClass.toFunLike.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)) (RingHom.instRingHomClassRingHom.{u4, max u3 u2} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)))))) (algebraMap.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10) (MonoidAlgebra.algebra.{u4, u2, u3} k H A _inst_7 _inst_8 _inst_9 _inst_10)) r)
+  forall {G : Type.{u5}} [_inst_2 : Monoid.{u5} G] (k : Type.{u4}) (A : Type.{u3}) {H : Type.{u2}} {F : Type.{u1}} [_inst_7 : CommSemiring.{u4} k] [_inst_8 : Semiring.{u3} A] [_inst_9 : Algebra.{u4, u3} k A _inst_7 _inst_8] [_inst_10 : Monoid.{u2} H] [_inst_11 : MonoidHomClass.{u1, u5, u2} F G H (Monoid.toMulOneClass.{u5} G _inst_2) (Monoid.toMulOneClass.{u2} H _inst_10)] (f : F) (r : k), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.mapDomain.{u3, u5, u2} A G _inst_8 H (FunLike.coe.{succ u1, succ u5, succ u2} F G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{u1, u5, u2} F G H (MulOneClass.toMul.{u5} G (Monoid.toMulOneClass.{u5} G _inst_2)) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H _inst_10)) (MonoidHomClass.toMulHomClass.{u1, u5, u2} F G H (Monoid.toMulOneClass.{u5} G _inst_2) (Monoid.toMulOneClass.{u2} H _inst_10) _inst_11)) f) (FunLike.coe.{max (max (succ u5) (succ u4)) (succ u3), succ u4, max (succ u5) (succ u3)} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u3, u5} A G _inst_8) _x) (MulHomClass.toFunLike.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)))) (NonUnitalNonAssocSemiring.toMul.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)) (RingHom.instRingHomClassRingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)))))) (algebraMap.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2) (MonoidAlgebra.algebra.{u4, u5, u3} k G A _inst_7 _inst_8 _inst_9 _inst_2)) r)) (FunLike.coe.{max (max (succ u4) (succ u3)) (succ u2), succ u4, max (succ u3) (succ u2)} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => MonoidAlgebra.{u3, u2} A H _inst_8) _x) (MulHomClass.toFunLike.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)) (RingHom.instRingHomClassRingHom.{u4, max u3 u2} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)))))) (algebraMap.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10) (MonoidAlgebra.algebra.{u4, u2, u3} k H A _inst_7 _inst_8 _inst_9 _inst_10)) r)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.map_domain_algebra_map MonoidAlgebra.mapDomain_algebraMapₓ'. -/
 theorem mapDomain_algebraMap (k A : Type _) {H F : Type _} [CommSemiring k] [Semiring A]
     [Algebra k A] [Monoid H] [MonoidHomClass F G H] (f : F) (r : k) :
@@ -1373,7 +1373,7 @@ variable [Module k V] [Module (MonoidAlgebra k G) V] [IsScalarTower k (MonoidAlg
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {V : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3] [_inst_5 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3] [_inst_6 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_1))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_1) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} k V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} k V (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4))))] (W : Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4), (forall (g : G) (v : V), (Membership.Mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) v W) -> (Membership.Mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) (SMul.smul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) => G -> (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) g) v) W)) -> (Submodule.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {V : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4))))] (W : Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4), (forall (g : G) (v : V), (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) v W) -> (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) (HSMul.hSMul.{max u1 u2, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V V (instHSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (SMulZeroClass.toSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidWithZero.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5))))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) g) v) W)) -> (Submodule.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {V : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4))))] (W : Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4), (forall (g : G) (v : V), (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) v W) -> (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) (HSMul.hSMul.{max u1 u2, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V V (instHSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (SMulZeroClass.toSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidWithZero.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5))))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) g) v) W)) -> (Submodule.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.submodule_of_smul_mem MonoidAlgebra.submoduleOfSmulMemₓ'. -/
 /-- A submodule over `k` which is stable under scalar multiplication by elements of `G` is a
 submodule over `monoid_algebra k G`  -/
@@ -1443,7 +1443,7 @@ def liftNC (f : k →+ R) (g : Multiplicative G → R) : AddMonoidAlgebra k G 
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : NonUnitalNonAssocSemiring.{u3} R] (f : AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (g : (Multiplicative.{u2} G) -> R) (a : G) (b : k), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 _inst_2 f g) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a b)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R _inst_2))) (coeFn.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (fun (_x : AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) => k -> R) (AddMonoidHom.hasCoeToFun.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) f b) (g (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (fun (_x : Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) => G -> (Multiplicative.{u2} G)) (Equiv.hasCoeToFun.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) a)))
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : NonUnitalNonAssocSemiring.{u1} R] (f : AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (g : (Multiplicative.{u3} G) -> R) (a : G) (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 _inst_2 f g) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddZeroClass.toAdd.{u2} k (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) f b) (g (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} G (Multiplicative.{u3} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : G) => Multiplicative.{u3} G) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} G (Multiplicative.{u3} G)) (Multiplicative.ofAdd.{u3} G) a)))
+  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : NonUnitalNonAssocSemiring.{u1} R] (f : AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (g : (Multiplicative.{u3} G) -> R) (a : G) (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 _inst_2 f g) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddZeroClass.toAdd.{u2} k (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) f b) (g (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} G (Multiplicative.{u3} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : G) => Multiplicative.{u3} G) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} G (Multiplicative.{u3} G)) (Multiplicative.ofAdd.{u3} G) a)))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_single AddMonoidAlgebra.liftNC_singleₓ'. -/
 @[simp]
 theorem liftNC_single (f : k →+ R) (g : Multiplicative G → R) (a : G) (b : k) :
@@ -1507,7 +1507,7 @@ variable [Semiring R]
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] [_inst_3 : Semiring.{u3} R] {g_hom : Type.{u4}} [_inst_4 : MulHomClass.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : g_hom) (a : AddMonoidAlgebra.{u1, u2} k G _inst_1) (b : AddMonoidAlgebra.{u1, u2} k G _inst_1), (forall {x : G} {y : G}, (Membership.Mem.{u2, u2} G (Finset.{u2} G) (Finset.hasMem.{u2} G) y (Finsupp.support.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a)) -> (Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) b x)) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (fun (_x : Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) => G -> (Multiplicative.{u2} G)) (Equiv.hasCoeToFun.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) y)))) -> (Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) a) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) b)))
 but is expected to have type
-  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Add.{u4} G] [_inst_3 : Semiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : MulHomClass.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : g_hom) (a : AddMonoidAlgebra.{u3, u4} k G _inst_1) (b : AddMonoidAlgebra.{u3, u4} k G _inst_1), (forall {x : G} {y : G}, (Membership.mem.{u4, u4} G (Finset.{u4} G) (Finset.instMembershipFinset.{u4} G) y (Finsupp.support.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1)) a)) -> (Commute.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) _inst_3))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u3} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g (FunLike.coe.{succ u4, succ u4, succ u4} (Equiv.{succ u4, succ u4} G (Multiplicative.{u4} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : G) => Multiplicative.{u4} G) _x) (Equiv.instFunLikeEquiv.{succ u4, succ u4} G (Multiplicative.{u4} G)) (Multiplicative.ofAdd.{u4} G) y)))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.hasMul.{u3, u4} k G _inst_1 _inst_2)) a b)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.hasMul.{u3, u4} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) a) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) b)))
+  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Add.{u4} G] [_inst_3 : Semiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : MulHomClass.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : g_hom) (a : AddMonoidAlgebra.{u3, u4} k G _inst_1) (b : AddMonoidAlgebra.{u3, u4} k G _inst_1), (forall {x : G} {y : G}, (Membership.mem.{u4, u4} G (Finset.{u4} G) (Finset.instMembershipFinset.{u4} G) y (Finsupp.support.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1)) a)) -> (Commute.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) _inst_3))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u3} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g (FunLike.coe.{succ u4, succ u4, succ u4} (Equiv.{succ u4, succ u4} G (Multiplicative.{u4} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : G) => Multiplicative.{u4} G) _x) (Equiv.instFunLikeEquiv.{succ u4, succ u4} G (Multiplicative.{u4} G)) (Multiplicative.ofAdd.{u4} G) y)))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.hasMul.{u3, u4} k G _inst_1 _inst_2)) a b)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.hasMul.{u3, u4} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) a) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) b)))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_mul AddMonoidAlgebra.liftNC_mulₓ'. -/
 theorem liftNC_mul {g_hom : Type _} [MulHomClass g_hom (Multiplicative G) R] (f : k →+* R)
     (g : g_hom) (a b : AddMonoidAlgebra k G)
@@ -1541,7 +1541,7 @@ theorem one_def : (1 : AddMonoidAlgebra k G) = single 0 1 :=
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Zero.{u2} G] [_inst_3 : NonAssocSemiring.{u3} R] {g_hom : Type.{u4}} [_inst_4 : OneHomClass.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasOne.{u2} G _inst_2) (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3)))] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (g : g_hom), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_3))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_3))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_3))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_3) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3)))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3 (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (OneHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasOne.{u2} G _inst_2) (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))) _inst_4)) g)) (OfNat.ofNat.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) 1 (OfNat.mk.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) 1 (One.one.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.one.{u1, u2} k G _inst_1 _inst_2))))) (OfNat.ofNat.{u3} R 1 (OfNat.mk.{u3} R 1 (One.one.{u3} R (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))))))
 but is expected to have type
-  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Zero.{u4} G] [_inst_3 : NonAssocSemiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : OneHomClass.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (instOneMultiplicative.{u4} G _inst_2) (NonAssocSemiring.toOne.{u1} R _inst_3)] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3) (g : g_hom), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R _inst_3)))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3 (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3)) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1262 : Multiplicative.{u4} G) => R) _x) (OneHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (instOneMultiplicative.{u4} G _inst_2) (NonAssocSemiring.toOne.{u1} R _inst_3) _inst_4) g)) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) 1 (One.toOfNat1.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) (NonAssocSemiring.toOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) _inst_3)))
+  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Zero.{u4} G] [_inst_3 : NonAssocSemiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : OneHomClass.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (instOneMultiplicative.{u4} G _inst_2) (NonAssocSemiring.toOne.{u1} R _inst_3)] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3) (g : g_hom), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R _inst_3)))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3 (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3)) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1264 : Multiplicative.{u4} G) => R) _x) (OneHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (instOneMultiplicative.{u4} G _inst_2) (NonAssocSemiring.toOne.{u1} R _inst_3) _inst_4) g)) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) 1 (One.toOfNat1.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) (NonAssocSemiring.toOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) _inst_3)))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_one AddMonoidAlgebra.liftNC_oneₓ'. -/
 @[simp]
 theorem liftNC_one {g_hom : Type _} [OneHomClass g_hom (Multiplicative G) R] (f : k →+* R)
@@ -1626,7 +1626,7 @@ variable [Semiring R]
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : Multiplicative.{u2} G), Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f x) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => (Multiplicative.{u2} G) -> R) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g y)) -> (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : Multiplicative.{u2} G), Commute.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) x) (NonUnitalNonAssocSemiring.toMul.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) x) (Semiring.toNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) x) _inst_3))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.instRingHomClassRingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) f x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u2} G) => R) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) R (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g y)) -> (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : Multiplicative.{u2} G), Commute.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) x) (NonUnitalNonAssocSemiring.toMul.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) x) (Semiring.toNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) x) _inst_3))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.instRingHomClassRingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) f x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => R) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) R (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g y)) -> (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_ring_hom AddMonoidAlgebra.liftNCRingHomₓ'. -/
 /-- `lift_nc` as a `ring_hom`, for when `f` and `g` commute -/
 def liftNCRingHom (f : k →+* R) (g : Multiplicative G →* R) (h_comm : ∀ x y, Commute (f x) (g y)) :
@@ -1859,7 +1859,7 @@ end
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : Multiplicative.{u2} G), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (fun (_x : Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) => (Multiplicative.{u2} G) -> G) (Equiv.hasCoeToFun.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) a) (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : Multiplicative.{u2} G), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a) (AddMonoidAlgebra.single.{u1, u2} k ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Multiplicative.{u2} G) => G) a) _inst_1 (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Multiplicative.{u2} G) => G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) a) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : Multiplicative.{u2} G), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a) (AddMonoidAlgebra.single.{u1, u2} k ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Multiplicative.{u2} G) => G) a) _inst_1 (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Multiplicative.{u2} G) => G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) a) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of_apply AddMonoidAlgebra.of_applyₓ'. -/
 @[simp]
 theorem of_apply [AddZeroClass G] (a : Multiplicative G) : of k G a = single a.toAdd 1 :=
@@ -1881,7 +1881,7 @@ theorem of'_apply (a : G) : of' k G a = single a 1 :=
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : G), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.of'.{u1, u2} k G _inst_1 a) (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : G), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.of'.{u1, u2} k G _inst_1 a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : G), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.of'.{u1, u2} k G _inst_1 a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of'_eq_of AddMonoidAlgebra.of'_eq_ofₓ'. -/
 theorem of'_eq_of [AddZeroClass G] (a : G) : of' k G a = of k G a :=
   rfl
@@ -1891,7 +1891,7 @@ theorem of'_eq_of [AddZeroClass G] (a : G) : of' k G a = of k G a :=
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Nontrivial.{u1} k] [_inst_3 : AddZeroClass.{u2} G], Function.Injective.{succ u2, max (succ u2) (succ u1)} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_3))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Nontrivial.{u1} k] [_inst_3 : AddZeroClass.{u2} G], Function.Injective.{succ u2, max (succ u1) (succ u2)} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_3)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_3))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Nontrivial.{u1} k] [_inst_3 : AddZeroClass.{u2} G], Function.Injective.{succ u2, max (succ u1) (succ u2)} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_3)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_3))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of_injective AddMonoidAlgebra.of_injectiveₓ'. -/
 theorem of_injective [Nontrivial k] [AddZeroClass G] : Function.Injective (of k G) := fun a b h =>
   by simpa using (single_eq_single_iff _ _ _ _).mp h
@@ -2008,7 +2008,7 @@ theorem single_mul_apply [AddGroup G] (r : k) (x : G) (f : AddMonoidAlgebra k G)
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] {R : Type.{u3}} [_inst_2 : AddZeroClass.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u1, u2} k G _inst_1), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => (Multiplicative.{u2} G) -> R) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) (SMul.smul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) c φ)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f c) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => (Multiplicative.{u2} G) -> R) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) φ))
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} [_inst_1 : Semiring.{u2} k] {R : Type.{u1}} [_inst_2 : AddZeroClass.{u3} G] [_inst_3 : Semiring.{u1} R] (f : RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u2, u3} k G _inst_1), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) (fun (_x : Multiplicative.{u3} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u3} G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (MulOneClass.toMul.{u3} (Multiplicative.{u3} G) (Multiplicative.mulOneClass.{u3} G _inst_2)) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) φ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) _inst_3)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f c) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) (fun (_x : Multiplicative.{u3} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u3} G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (MulOneClass.toMul.{u3} (Multiplicative.{u3} G) (Multiplicative.mulOneClass.{u3} G _inst_2)) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) φ))
+  forall {k : Type.{u2}} {G : Type.{u3}} [_inst_1 : Semiring.{u2} k] {R : Type.{u1}} [_inst_2 : AddZeroClass.{u3} G] [_inst_3 : Semiring.{u1} R] (f : RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u2, u3} k G _inst_1), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) (fun (_x : Multiplicative.{u3} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u3} G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (MulOneClass.toMul.{u3} (Multiplicative.{u3} G) (Multiplicative.mulOneClass.{u3} G _inst_2)) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) φ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) c) _inst_3)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => R) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f c) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) (fun (_x : Multiplicative.{u3} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u3} G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (MulOneClass.toMul.{u3} (Multiplicative.{u3} G) (Multiplicative.mulOneClass.{u3} G _inst_2)) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) φ))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_smul AddMonoidAlgebra.liftNC_smulₓ'. -/
 theorem liftNC_smul {R : Type _} [AddZeroClass G] [Semiring R] (f : k →+* R)
     (g : Multiplicative G →* R) (c : k) (φ : MonoidAlgebra k G) :
@@ -2020,7 +2020,7 @@ theorem liftNC_smul {R : Type _} [AddZeroClass G] [Semiring R] (f : k →+* R)
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {p : (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (fun (_x : Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) => G -> (Multiplicative.{u2} G)) (Equiv.hasCoeToFun.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) g))) -> (forall (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toHasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (SMul.smul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) r f))) -> (p f)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {p : (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : G) => Multiplicative.{u2} G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) g))) -> (forall (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r f))) -> (p f)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {p : (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : G) => Multiplicative.{u2} G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) g))) -> (forall (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r f))) -> (p f)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.induction_on AddMonoidAlgebra.induction_onₓ'. -/
 theorem induction_on [AddMonoid G] {p : AddMonoidAlgebra k G → Prop} (f : AddMonoidAlgebra k G)
     (hM : ∀ g, p (of k G (Multiplicative.ofAdd g)))
@@ -2221,7 +2221,7 @@ def singleZeroRingHom [Semiring k] [AddMonoid G] : k →+* AddMonoidAlgebra k G
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] {f : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)} {g : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)}, (forall (b : k), Eq.{succ u3} R (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) b)) (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) b))) -> (forall (a : G), Eq.{succ u3} R (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))) (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))))) -> (Eq.{max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f g)
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : AddMonoid.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (forall (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b))) -> (forall (a : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1)))))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
+  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : AddMonoid.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (forall (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b))) -> (forall (a : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1)))))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.ring_hom_ext AddMonoidAlgebra.ringHom_extₓ'. -/
 /-- If two ring homomorphisms from `add_monoid_algebra k G` are equal on all `single a 1`
 and `single 0 b`, then they are equal. -/
@@ -2329,7 +2329,7 @@ def singleZeroAlgHom [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : CommSemiring.{u3} R] [_inst_2 : Semiring.{u1} k] [_inst_3 : Algebra.{u3, u1} R k _inst_1 _inst_2] [_inst_4 : AddMonoid.{u2} G], Eq.{max (succ u3) (succ u2) (succ u1)} ((fun (_x : RingHom.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) => R -> (AddMonoidAlgebra.{u1, u2} k G _inst_2)) (algebraMap.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u1, u2, u3} k G R _inst_1 _inst_2 _inst_3 _inst_4))) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ u3) (succ (max u2 u1))} (RingHom.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) (fun (_x : RingHom.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) => R -> (AddMonoidAlgebra.{u1, u2} k G _inst_2)) (RingHom.hasCoeToFun.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) (algebraMap.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u1, u2, u3} k G R _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u3, succ u1, max (succ u2) (succ u1)} R k (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_4)))))) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} R k (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} k _inst_2)) (fun (_x : RingHom.{u3, u1} R k (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} k _inst_2)) => R -> k) (RingHom.hasCoeToFun.{u3, u1} R k (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} k _inst_2)) (algebraMap.{u3, u1} R k _inst_1 _inst_2 _inst_3)))
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Semiring.{u2} k] [_inst_3 : Algebra.{u1, u2} R k _inst_1 _inst_2] [_inst_4 : AddMonoid.{u3} G], Eq.{max (max (succ u2) (succ u3)) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => AddMonoidAlgebra.{u2, u3} k G _inst_2) a) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u1, max (succ u2) (succ u3)} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => AddMonoidAlgebra.{u2, u3} k G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u1, max u2 u3} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)))))) (algebraMap.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u2, u3, u1} k G R _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u1, succ u2, max (succ u3) (succ u2)} R k (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.single.{u2, u3} k G _inst_2 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_4)))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => k) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2))))) (algebraMap.{u1, u2} R k _inst_1 _inst_2 _inst_3)))
+  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Semiring.{u2} k] [_inst_3 : Algebra.{u1, u2} R k _inst_1 _inst_2] [_inst_4 : AddMonoid.{u3} G], Eq.{max (max (succ u2) (succ u3)) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => AddMonoidAlgebra.{u2, u3} k G _inst_2) a) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u1, max (succ u2) (succ u3)} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => AddMonoidAlgebra.{u2, u3} k G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u1, max u2 u3} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)))))) (algebraMap.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u2, u3, u1} k G R _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u1, succ u2, max (succ u3) (succ u2)} R k (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.single.{u2, u3} k G _inst_2 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_4)))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => k) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2))))) (algebraMap.{u1, u2} R k _inst_1 _inst_2 _inst_3)))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.coe_algebra_map AddMonoidAlgebra.coe_algebraMapₓ'. -/
 @[simp]
 theorem coe_algebraMap [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
@@ -2349,7 +2349,7 @@ variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [A
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : Multiplicative.{u2} G), Commute.{u4} B (Distrib.toHasMul.{u4} B (NonUnitalNonAssocSemiring.toDistrib.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (fun (_x : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) => A -> B) ([anonymous].{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) f x) (coeFn.{max (succ u4) (succ u2), max (succ u2) (succ u4)} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (fun (_x : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) => (Multiplicative.{u2} G) -> B) (MonoidHom.hasCoeToFun.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (AddMonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : Multiplicative.{u2} G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u2} G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (AddMonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : Multiplicative.{u2} G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (AddMonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_alg_hom AddMonoidAlgebra.liftNCAlgHomₓ'. -/
 /-- `lift_nc_ring_hom` as a `alg_hom`, for when `f` is an `alg_hom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : Multiplicative G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
@@ -2429,7 +2429,7 @@ theorem lift_def (F : Multiplicative G →* A) :
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : Multiplicative.{u2} G), Eq.{succ u3} A (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) => (Multiplicative.{u2} G) -> A) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (coeFn.{max 1 (max (max (succ (max u2 u1)) (succ u3)) (succ u3) (succ u2)) (max (succ u3) (succ u2)) (succ (max u2 u1)) (succ u3), max (max (succ (max u2 u1)) (succ u3)) (succ u3) (succ u2)} (Equiv.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (fun (_x : Equiv.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) => (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) -> (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u3) (succ u2), max (succ (max u2 u1)) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) -> A) ([anonymous].{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) F (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (fun (_x : Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) => (Multiplicative.{u2} G) -> G) (Equiv.hasCoeToFun.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) x) (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))))))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : Multiplicative.{u2} G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u2} G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u2} G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (AddMonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Multiplicative.{u2} G) => G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) x) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : Multiplicative.{u2} G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Multiplicative.{u2} G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (AddMonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Multiplicative.{u2} G) => G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) x) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_symm_apply AddMonoidAlgebra.lift_symm_applyₓ'. -/
 @[simp]
 theorem lift_symm_apply (F : AddMonoidAlgebra k G →ₐ[k] A) (x : Multiplicative G) :
@@ -2504,7 +2504,7 @@ end
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {A : Type.{u3}} {H : Type.{u4}} {F : Type.{u5}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u1, u3} k A _inst_1 _inst_2] [_inst_4 : AddMonoid.{u2} G] [_inst_5 : AddMonoid.{u4} H] [_inst_6 : AddMonoidHomClass.{u5, u2, u4} F G H (AddMonoid.toAddZeroClass.{u2} G _inst_4) (AddMonoid.toAddZeroClass.{u4} H _inst_5)] (f : F) (r : k), Eq.{max (succ u4) (succ u3)} (Finsupp.{u4, u3} H A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))))) (Finsupp.mapDomain.{u2, u4, u3} G H A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))) (coeFn.{succ u5, max (succ u2) (succ u4)} F (fun (_x : F) => G -> H) (FunLike.hasCoeToFun.{succ u5, succ u2, succ u4} F G (fun (_x : G) => H) (AddHomClass.toFunLike.{u5, u2, u4} F G H (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_4)) (AddZeroClass.toHasAdd.{u4} H (AddMonoid.toAddZeroClass.{u4} H _inst_5)) (AddMonoidHomClass.toAddHomClass.{u5, u2, u4} F G H (AddMonoid.toAddZeroClass.{u2} G _inst_4) (AddMonoid.toAddZeroClass.{u4} H _inst_5) _inst_6))) f) (coeFn.{max (succ u1) (succ (max u2 u3)), max (succ u1) (succ (max u2 u3))} (RingHom.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (fun (_x : RingHom.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) => k -> (AddMonoidAlgebra.{u3, u2} A G _inst_2)) (RingHom.hasCoeToFun.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (algebraMap.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_2 _inst_3 _inst_4)) r)) (coeFn.{max (succ u1) (succ (max u4 u3)), max (succ u1) (succ (max u4 u3))} (RingHom.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u4 u3} (AddMonoidAlgebra.{u3, u4} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5))) (fun (_x : RingHom.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u4 u3} (AddMonoidAlgebra.{u3, u4} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5))) => k -> (AddMonoidAlgebra.{u3, u4} A H _inst_2)) (RingHom.hasCoeToFun.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u4 u3} (AddMonoidAlgebra.{u3, u4} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5))) (algebraMap.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5) (AddMonoidAlgebra.algebra.{u3, u4, u1} A H k _inst_1 _inst_2 _inst_3 _inst_5)) r)
 but is expected to have type
-  forall {k : Type.{u4}} {G : Type.{u5}} {A : Type.{u3}} {H : Type.{u2}} {F : Type.{u1}} [_inst_1 : CommSemiring.{u4} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u4, u3} k A _inst_1 _inst_2] [_inst_4 : AddMonoid.{u5} G] [_inst_5 : AddMonoid.{u2} H] [_inst_6 : AddMonoidHomClass.{u1, u5, u2} F G H (AddMonoid.toAddZeroClass.{u5} G _inst_4) (AddMonoid.toAddZeroClass.{u2} H _inst_5)] (f : F) (r : k), Eq.{max (succ u3) (succ u2)} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.mapDomain.{u3, u5, u2} A G _inst_2 H (FunLike.coe.{succ u1, succ u5, succ u2} F G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G) => H) _x) (AddHomClass.toFunLike.{u1, u5, u2} F G H (AddZeroClass.toAdd.{u5} G (AddMonoid.toAddZeroClass.{u5} G _inst_4)) (AddZeroClass.toAdd.{u2} H (AddMonoid.toAddZeroClass.{u2} H _inst_5)) (AddMonoidHomClass.toAddHomClass.{u1, u5, u2} F G H (AddMonoid.toAddZeroClass.{u5} G _inst_4) (AddMonoid.toAddZeroClass.{u2} H _inst_5) _inst_6)) f) (FunLike.coe.{max (max (succ u4) (succ u5)) (succ u3), succ u4, max (succ u5) (succ u3)} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => AddMonoidAlgebra.{u3, u5} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)))))) (algebraMap.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u3, u5, u4} A G k _inst_1 _inst_2 _inst_3 _inst_4)) r)) (FunLike.coe.{max (max (succ u4) (succ u3)) (succ u2), succ u4, max (succ u3) (succ u2)} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => AddMonoidAlgebra.{u3, u2} A H _inst_2) _x) (MulHomClass.toFunLike.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)) (RingHom.instRingHomClassRingHom.{u4, max u3 u2} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)))))) (algebraMap.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5) (AddMonoidAlgebra.algebra.{u3, u2, u4} A H k _inst_1 _inst_2 _inst_3 _inst_5)) r)
+  forall {k : Type.{u4}} {G : Type.{u5}} {A : Type.{u3}} {H : Type.{u2}} {F : Type.{u1}} [_inst_1 : CommSemiring.{u4} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u4, u3} k A _inst_1 _inst_2] [_inst_4 : AddMonoid.{u5} G] [_inst_5 : AddMonoid.{u2} H] [_inst_6 : AddMonoidHomClass.{u1, u5, u2} F G H (AddMonoid.toAddZeroClass.{u5} G _inst_4) (AddMonoid.toAddZeroClass.{u2} H _inst_5)] (f : F) (r : k), Eq.{max (succ u3) (succ u2)} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.mapDomain.{u3, u5, u2} A G _inst_2 H (FunLike.coe.{succ u1, succ u5, succ u2} F G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G) => H) _x) (AddHomClass.toFunLike.{u1, u5, u2} F G H (AddZeroClass.toAdd.{u5} G (AddMonoid.toAddZeroClass.{u5} G _inst_4)) (AddZeroClass.toAdd.{u2} H (AddMonoid.toAddZeroClass.{u2} H _inst_5)) (AddMonoidHomClass.toAddHomClass.{u1, u5, u2} F G H (AddMonoid.toAddZeroClass.{u5} G _inst_4) (AddMonoid.toAddZeroClass.{u2} H _inst_5) _inst_6)) f) (FunLike.coe.{max (max (succ u4) (succ u5)) (succ u3), succ u4, max (succ u5) (succ u3)} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => AddMonoidAlgebra.{u3, u5} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)))))) (algebraMap.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u3, u5, u4} A G k _inst_1 _inst_2 _inst_3 _inst_4)) r)) (FunLike.coe.{max (max (succ u4) (succ u3)) (succ u2), succ u4, max (succ u3) (succ u2)} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : k) => AddMonoidAlgebra.{u3, u2} A H _inst_2) _x) (MulHomClass.toFunLike.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)) (RingHom.instRingHomClassRingHom.{u4, max u3 u2} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)))))) (algebraMap.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5) (AddMonoidAlgebra.algebra.{u3, u2, u4} A H k _inst_1 _inst_2 _inst_3 _inst_5)) r)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.map_domain_algebra_map AddMonoidAlgebra.mapDomain_algebraMapₓ'. -/
 theorem mapDomain_algebraMap {A H F : Type _} [CommSemiring k] [Semiring A] [Algebra k A]
     [AddMonoid G] [AddMonoid H] [AddMonoidHomClass F G H] (f : F) (r : k) :
Diff
@@ -1174,7 +1174,7 @@ def GroupSmul.linearMap [Monoid G] [CommSemiring k] (V : Type u₃) [AddCommMono
 lean 3 declaration is
   forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] (V : Type.{u3}) [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_2) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} k V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} k V (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] (g : G) (v : V), Eq.{succ u3} V (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V V _inst_3 _inst_3 _inst_4 _inst_4) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V V _inst_3 _inst_3 _inst_4 _inst_4) => V -> V) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V V (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_3 _inst_4 _inst_4 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) (MonoidAlgebra.GroupSmul.linearMap.{u1, u2, u3} k G _inst_1 _inst_2 V _inst_3 _inst_4 _inst_5 _inst_6 g) v) (SMul.smul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (SMulZeroClass.toHasSmul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MulZeroClass.toHasZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) g (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))))))) v)
 but is expected to have type
-  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] (V : Type.{u3}) [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] (g : G) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => V) v) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V V _inst_3 _inst_3 _inst_4 _inst_4) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => V) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V V (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_3 _inst_4 _inst_4 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) (MonoidAlgebra.GroupSmul.linearMap.{u1, u2, u3} k G _inst_1 _inst_2 V _inst_3 _inst_4 _inst_5 _inst_6 g) v) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)
+  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] (V : Type.{u3}) [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] (g : G) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => V) v) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V V _inst_3 _inst_3 _inst_4 _inst_4) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => V) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V V (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_3 _inst_4 _inst_4 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) (MonoidAlgebra.GroupSmul.linearMap.{u1, u2, u3} k G _inst_1 _inst_2 V _inst_3 _inst_4 _inst_5 _inst_6 g) v) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.group_smul.linear_map_apply MonoidAlgebra.GroupSmul.linearMap_applyₓ'. -/
 @[simp]
 theorem GroupSmul.linearMap_apply [Monoid G] [CommSemiring k] (V : Type u₃) [AddCommMonoid V]
@@ -1199,7 +1199,7 @@ include h
 lean 3 declaration is
   forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₃}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₁ u₂, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toHasSmul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toAddZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u₂, u₁} k G (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u₁, u₂, u₁} k G k (CommSemiring.toSemiring.{u₁} k _inst_2) (SMulWithZero.toSmulZeroClass.{u₁, u₁} k k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MulZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u₁, u₃} k V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u₁, u₃} k V (MulZeroClass.toHasZero.{u₁} k (MulZeroOneClass.toMulZeroClass.{u₁} k (MonoidWithZero.toMulZeroOneClass.{u₁} k (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₃} W] [_inst_8 : Module.{u₁, u₃} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₁ u₂, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (SMulZeroClass.toHasSmul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toAddZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u₂, u₁} k G (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u₁, u₂, u₁} k G k (CommSemiring.toSemiring.{u₁} k _inst_2) (SMulWithZero.toSmulZeroClass.{u₁, u₁} k k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MulZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toHasSmul.{u₁, u₃} k W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{u₁, u₃} k W (MulZeroClass.toHasZero.{u₁} k (MulZeroOneClass.toMulZeroClass.{u₁} k (MonoidWithZero.toMulZeroOneClass.{u₁} k (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{u₁, u₃} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8), (forall (g : G) (v : V), Eq.{succ u₃} W (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (SMul.smul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (SMulZeroClass.toHasSmul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (MulZeroClass.toHasZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (Finsupp.single.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) g (OfNat.ofNat.{u₁} k 1 (OfNat.mk.{u₁} k 1 (One.one.{u₁} k (AddMonoidWithOne.toOne.{u₁} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u₁} k (NonAssocSemiring.toAddCommMonoidWithOne.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))))))) v)) (SMul.smul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (SMulZeroClass.toHasSmul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (MulZeroClass.toHasZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (Finsupp.single.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) g (OfNat.ofNat.{u₁} k 1 (OfNat.mk.{u₁} k 1 (One.one.{u₁} k (AddMonoidWithOne.toOne.{u₁} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u₁} k (NonAssocSemiring.toAddCommMonoidWithOne.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))))))) (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) -> (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toNonAssocSemiring.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9)
 but is expected to have type
-  forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₄}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₂ u₁, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₂ u₁, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u₁, u₃} k V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u₁, u₃} k V (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₄} W] [_inst_8 : Module.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₂ u₁, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₂ u₁, u₄} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u₁, u₄} k W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u₁, u₄} k W (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u₁, u₄} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8), (forall (g : G) (v : V), Eq.{succ u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (HSMul.hSMul.{max u₂ u₁, u₄, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (instHSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) -> (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₂ u₁} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) (Monoid.toMulOneClass.{u₂} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9)
+  forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₄}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₂ u₁, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₂ u₁, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u₁, u₃} k V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u₁, u₃} k V (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₄} W] [_inst_8 : Module.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₂ u₁, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₂ u₁, u₄} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u₁, u₄} k W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u₁, u₄} k W (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u₁, u₄} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8), (forall (g : G) (v : V), Eq.{succ u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (HSMul.hSMul.{max u₂ u₁, u₄, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (instHSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) -> (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₂ u₁} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) (Monoid.toMulOneClass.{u₂} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.equivariant_of_linear_of_comm MonoidAlgebra.equivariantOfLinearOfCommₓ'. -/
 /-- Build a `k[G]`-linear map from a `k`-linear map and evidence that it is `G`-equivariant. -/
 def equivariantOfLinearOfComm : V →ₗ[MonoidAlgebra k G] W
@@ -1221,7 +1221,7 @@ def equivariantOfLinearOfComm : V →ₗ[MonoidAlgebra k G] W
 lean 3 declaration is
   forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₃}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₁ u₂, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toHasSmul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toAddZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u₂, u₁} k G (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u₁, u₂, u₁} k G k (CommSemiring.toSemiring.{u₁} k _inst_2) (SMulWithZero.toSmulZeroClass.{u₁, u₁} k k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MulZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u₁, u₃} k V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u₁, u₃} k V (MulZeroClass.toHasZero.{u₁} k (MulZeroOneClass.toMulZeroClass.{u₁} k (MonoidWithZero.toMulZeroOneClass.{u₁} k (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₃} W] [_inst_8 : Module.{u₁, u₃} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₁ u₂, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (SMulZeroClass.toHasSmul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toAddZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u₂, u₁} k G (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u₁, u₂, u₁} k G k (CommSemiring.toSemiring.{u₁} k _inst_2) (SMulWithZero.toSmulZeroClass.{u₁, u₁} k k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MulZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toHasSmul.{u₁, u₃} k W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{u₁, u₃} k W (MulZeroClass.toHasZero.{u₁} k (MulZeroOneClass.toMulZeroClass.{u₁} k (MonoidWithZero.toMulZeroOneClass.{u₁} k (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{u₁, u₃} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (h : forall (g : G) (v : V), Eq.{succ u₃} W (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (SMul.smul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (SMulZeroClass.toHasSmul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (MulZeroClass.toHasZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (Finsupp.single.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) g (OfNat.ofNat.{u₁} k 1 (OfNat.mk.{u₁} k 1 (One.one.{u₁} k (AddMonoidWithOne.toOne.{u₁} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u₁} k (NonAssocSemiring.toAddCommMonoidWithOne.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))))))) v)) (SMul.smul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (SMulZeroClass.toHasSmul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (MulZeroClass.toHasZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (Finsupp.single.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) g (OfNat.ofNat.{u₁} k 1 (OfNat.mk.{u₁} k 1 (One.one.{u₁} k (AddMonoidWithOne.toOne.{u₁} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u₁} k (NonAssocSemiring.toAddCommMonoidWithOne.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))))))) (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) (v : V), Eq.{succ u₃} W (coeFn.{succ u₃, succ u₃} (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toNonAssocSemiring.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) (fun (_x : LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toNonAssocSemiring.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) => V -> W) (LinearMap.hasCoeToFun.{max u₁ u₂, max u₁ u₂, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_7 _inst_5 _inst_9 (RingHom.id.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toNonAssocSemiring.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)))) (MonoidAlgebra.equivariantOfLinearOfComm.{u₁, u₂, u₃} k G _inst_1 _inst_2 V W _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 f h) v) (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v)
 but is expected to have type
-  forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₄}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₂ u₁, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₂ u₁, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u₁, u₃} k V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u₁, u₃} k V (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₄} W] [_inst_8 : Module.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₂ u₁, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₂ u₁, u₄} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u₁, u₄} k W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u₁, u₄} k W (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u₁, u₄} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (h : forall (g : G) (v : V), Eq.{succ u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (HSMul.hSMul.{max u₂ u₁, u₄, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (instHSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) (v : V), Eq.{succ u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₂ u₁} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) (Monoid.toMulOneClass.{u₂} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_7 _inst_5 _inst_9 (RingHom.id.{max u₂ u₁} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) (Monoid.toMulOneClass.{u₂} G _inst_1)))) (MonoidAlgebra.equivariantOfLinearOfComm.{u₁, u₂, u₃, u₄} k G _inst_1 _inst_2 V W _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 f h) v) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v)
+  forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₄}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₂ u₁, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₂ u₁, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u₁, u₃} k V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u₁, u₃} k V (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₄} W] [_inst_8 : Module.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₂ u₁, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₂ u₁, u₄} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u₁, u₄} k W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u₁, u₄} k W (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u₁, u₄} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (h : forall (g : G) (v : V), Eq.{succ u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (HSMul.hSMul.{max u₂ u₁, u₄, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (instHSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) (v : V), Eq.{succ u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) v) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₂ u₁} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) (Monoid.toMulOneClass.{u₂} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_7 _inst_5 _inst_9 (RingHom.id.{max u₂ u₁} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) (Monoid.toMulOneClass.{u₂} G _inst_1)))) (MonoidAlgebra.equivariantOfLinearOfComm.{u₁, u₂, u₃, u₄} k G _inst_1 _inst_2 V W _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 f h) v) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.equivariant_of_linear_of_comm_apply MonoidAlgebra.equivariantOfLinearOfComm_applyₓ'. -/
 @[simp]
 theorem equivariantOfLinearOfComm_apply (v : V) : (equivariantOfLinearOfComm f h) v = f v :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Yury G. Kudryashov, Scott Morrison
 
 ! This file was ported from Lean 3 source module algebra.monoid_algebra.basic
-! leanprover-community/mathlib commit f69db8cecc668e2d5894d7e9bfc491da60db3b9f
+! leanprover-community/mathlib commit 949dc57e616a621462062668c9f39e4e17b64b69
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -369,8 +369,8 @@ instance [Monoid R] [Semiring k] [DistribMulAction R k] [FaithfulSMul R k] [None
     FaithfulSMul R (MonoidAlgebra k G) :=
   Finsupp.faithfulSMul
 
-instance [Monoid R] [Monoid S] [Semiring k] [DistribMulAction R k] [DistribMulAction S k] [SMul R S]
-    [IsScalarTower R S k] : IsScalarTower R S (MonoidAlgebra k G) :=
+instance [Semiring k] [SMulZeroClass R k] [SMulZeroClass S k] [SMul R S] [IsScalarTower R S k] :
+    IsScalarTower R S (MonoidAlgebra k G) :=
   Finsupp.isScalarTower G k
 
 instance [Monoid R] [Monoid S] [Semiring k] [DistribMulAction R k] [DistribMulAction S k]
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Yury G. Kudryashov, Scott Morrison
 
 ! This file was ported from Lean 3 source module algebra.monoid_algebra.basic
-! leanprover-community/mathlib commit 2651125b48fc5c170ab1111afd0817c903b1fc6c
+! leanprover-community/mathlib commit f69db8cecc668e2d5894d7e9bfc491da60db3b9f
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -1701,23 +1701,23 @@ instance [Monoid R] [Semiring k] [DistribMulAction R k] :
     DistribMulAction R (AddMonoidAlgebra k G) :=
   Finsupp.distribMulAction G k
 
-instance [Monoid R] [Semiring k] [DistribMulAction R k] [FaithfulSMul R k] [Nonempty G] :
+instance [Semiring k] [SMulZeroClass R k] [FaithfulSMul R k] [Nonempty G] :
     FaithfulSMul R (AddMonoidAlgebra k G) :=
   Finsupp.faithfulSMul
 
 instance [Semiring R] [Semiring k] [Module R k] : Module R (AddMonoidAlgebra k G) :=
   Finsupp.module G k
 
-instance [Monoid R] [Monoid S] [Semiring k] [DistribMulAction R k] [DistribMulAction S k] [SMul R S]
-    [IsScalarTower R S k] : IsScalarTower R S (AddMonoidAlgebra k G) :=
+instance [Semiring k] [SMulZeroClass R k] [SMulZeroClass S k] [SMul R S] [IsScalarTower R S k] :
+    IsScalarTower R S (AddMonoidAlgebra k G) :=
   Finsupp.isScalarTower G k
 
-instance [Monoid R] [Monoid S] [Semiring k] [DistribMulAction R k] [DistribMulAction S k]
-    [SMulCommClass R S k] : SMulCommClass R S (AddMonoidAlgebra k G) :=
+instance [Semiring k] [SMulZeroClass R k] [SMulZeroClass S k] [SMulCommClass R S k] :
+    SMulCommClass R S (AddMonoidAlgebra k G) :=
   Finsupp.smulCommClass G k
 
-instance [Monoid R] [Semiring k] [DistribMulAction R k] [DistribMulAction Rᵐᵒᵖ k]
-    [IsCentralScalar R k] : IsCentralScalar R (AddMonoidAlgebra k G) :=
+instance [Semiring k] [SMulZeroClass R k] [SMulZeroClass Rᵐᵒᵖ k] [IsCentralScalar R k] :
+    IsCentralScalar R (AddMonoidAlgebra k G) :=
   Finsupp.isCentralScalar G k
 
 /-! It is hard to state the equivalent of `distrib_mul_action G (add_monoid_algebra k G)`
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Yury G. Kudryashov, Scott Morrison
 
 ! This file was ported from Lean 3 source module algebra.monoid_algebra.basic
-! leanprover-community/mathlib commit 57e09a1296bfb4330ddf6624f1028ba186117d82
+! leanprover-community/mathlib commit 2651125b48fc5c170ab1111afd0817c903b1fc6c
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -1694,6 +1694,9 @@ instance [CommRing k] [AddCommMonoid G] : CommRing (AddMonoidAlgebra k G) :=
 
 variable {S : Type _}
 
+instance [Semiring k] [DistribSMul R k] : DistribSMul R (AddMonoidAlgebra k G) :=
+  Finsupp.distribSMul G k
+
 instance [Monoid R] [Semiring k] [DistribMulAction R k] :
     DistribMulAction R (AddMonoidAlgebra k G) :=
   Finsupp.distribMulAction G k
Diff
@@ -334,7 +334,7 @@ instance [Ring k] [MulOneClass G] : NonAssocRing (MonoidAlgebra k G) :=
 
 /- warning: monoid_algebra.int_cast_def -> MonoidAlgebra.int_cast_def is a dubious translation:
 lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Ring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (z : Int), Eq.{succ (max u1 u2)} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) ((fun (a : Type) (b : Type.{max u1 u2}) [self : HasLiftT.{1, succ (max u1 u2)} a b] => self.0) Int (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (HasLiftT.mk.{1, succ (max u1 u2)} Int (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (CoeTCₓ.coe.{1, succ (max u1 u2)} Int (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (Int.castCoe.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (AddGroupWithOne.toHasIntCast.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (NonAssocRing.toAddGroupWithOne.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocRing.{u1, u2} k G _inst_1 _inst_2)))))) z) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (Ring.toSemiring.{u1} k _inst_1))))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int k (HasLiftT.mk.{1, succ u1} Int k (CoeTCₓ.coe.{1, succ u1} Int k (Int.castCoe.{u1} k (AddGroupWithOne.toHasIntCast.{u1} k (NonAssocRing.toAddGroupWithOne.{u1} k (Ring.toNonAssocRing.{u1} k _inst_1)))))) z))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Ring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (z : Int), Eq.{succ (max u1 u2)} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) ((fun (a : Type) (b : Type.{max u1 u2}) [self : HasLiftT.{1, succ (max u1 u2)} a b] => self.0) Int (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (HasLiftT.mk.{1, succ (max u1 u2)} Int (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (CoeTCₓ.coe.{1, succ (max u1 u2)} Int (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (Int.castCoe.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (AddGroupWithOne.toHasIntCast.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (NonAssocRing.toAddCommGroupWithOne.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocRing.{u1, u2} k G _inst_1 _inst_2))))))) z) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (Ring.toSemiring.{u1} k _inst_1))))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int k (HasLiftT.mk.{1, succ u1} Int k (CoeTCₓ.coe.{1, succ u1} Int k (Int.castCoe.{u1} k (AddGroupWithOne.toHasIntCast.{u1} k (AddCommGroupWithOne.toAddGroupWithOne.{u1} k (Ring.toAddCommGroupWithOne.{u1} k _inst_1)))))) z))
 but is expected to have type
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Ring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (z : Int), Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (Int.cast.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (NonAssocRing.toIntCast.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocRing.{u1, u2} k G _inst_1 _inst_2)) z) (MonoidAlgebra.single.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1) (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G (MulOneClass.toOne.{u2} G _inst_2))) (Int.cast.{u1} k (Ring.toIntCast.{u1} k _inst_1) z))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.int_cast_def MonoidAlgebra.int_cast_defₓ'. -/
@@ -1675,7 +1675,7 @@ instance [Ring k] [AddZeroClass G] : NonAssocRing (AddMonoidAlgebra k G) :=
 
 /- warning: add_monoid_algebra.int_cast_def -> AddMonoidAlgebra.int_cast_def is a dubious translation:
 lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Ring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (z : Int), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) ((fun (a : Type) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{1, max (succ u2) (succ u1)} a b] => self.0) Int (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (HasLiftT.mk.{1, max (succ u2) (succ u1)} Int (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (CoeTCₓ.coe.{1, max (succ u2) (succ u1)} Int (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (Int.castCoe.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (AddGroupWithOne.toHasIntCast.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (NonAssocRing.toAddGroupWithOne.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocRing.{u1, u2} k G _inst_1 _inst_2)))))) z) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (Ring.toSemiring.{u1} k _inst_1))))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G _inst_2)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int k (HasLiftT.mk.{1, succ u1} Int k (CoeTCₓ.coe.{1, succ u1} Int k (Int.castCoe.{u1} k (AddGroupWithOne.toHasIntCast.{u1} k (NonAssocRing.toAddGroupWithOne.{u1} k (Ring.toNonAssocRing.{u1} k _inst_1)))))) z))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Ring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (z : Int), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) ((fun (a : Type) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{1, max (succ u2) (succ u1)} a b] => self.0) Int (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (HasLiftT.mk.{1, max (succ u2) (succ u1)} Int (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (CoeTCₓ.coe.{1, max (succ u2) (succ u1)} Int (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (Int.castCoe.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (AddGroupWithOne.toHasIntCast.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (AddCommGroupWithOne.toAddGroupWithOne.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (NonAssocRing.toAddCommGroupWithOne.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocRing.{u1, u2} k G _inst_1 _inst_2))))))) z) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (Ring.toSemiring.{u1} k _inst_1))))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G _inst_2)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int k (HasLiftT.mk.{1, succ u1} Int k (CoeTCₓ.coe.{1, succ u1} Int k (Int.castCoe.{u1} k (AddGroupWithOne.toHasIntCast.{u1} k (AddCommGroupWithOne.toAddGroupWithOne.{u1} k (Ring.toAddCommGroupWithOne.{u1} k _inst_1)))))) z))
 but is expected to have type
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Ring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (z : Int), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (Int.cast.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (NonAssocRing.toIntCast.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocRing.{u1, u2} k G _inst_1 _inst_2)) z) (AddMonoidAlgebra.single.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1) (OfNat.ofNat.{u2} G 0 (Zero.toOfNat0.{u2} G (AddZeroClass.toZero.{u2} G _inst_2))) (Int.cast.{u1} k (Ring.toIntCast.{u1} k _inst_1) z))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.int_cast_def AddMonoidAlgebra.int_cast_defₓ'. -/
Diff
@@ -1197,9 +1197,9 @@ include h
 
 /- warning: monoid_algebra.equivariant_of_linear_of_comm -> MonoidAlgebra.equivariantOfLinearOfComm is a dubious translation:
 lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] {V : Type.{u3}} {W : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_2) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} k V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} k V (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u3} W] [_inst_8 : Module.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7] [_inst_9 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_2) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toHasSmul.{u1, u3} k W (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (SMulWithZero.toSmulZeroClass.{u1, u3} k W (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (MulActionWithZero.toSMulWithZero.{u1, u3} k W (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (Module.toMulActionWithZero.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8), (forall (g : G) (v : V), Eq.{succ u3} W (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f (SMul.smul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (SMulZeroClass.toHasSmul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MulZeroClass.toHasZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) g (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))))))) v)) (SMul.smul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (SMulZeroClass.toHasSmul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (MulZeroClass.toHasZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (Module.toMulActionWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) g (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))))))) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v))) -> (LinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (RingHom.id.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9)
+  forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₃}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₁ u₂, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toHasSmul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toAddZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u₂, u₁} k G (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u₁, u₂, u₁} k G k (CommSemiring.toSemiring.{u₁} k _inst_2) (SMulWithZero.toSmulZeroClass.{u₁, u₁} k k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MulZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u₁, u₃} k V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u₁, u₃} k V (MulZeroClass.toHasZero.{u₁} k (MulZeroOneClass.toMulZeroClass.{u₁} k (MonoidWithZero.toMulZeroOneClass.{u₁} k (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₃} W] [_inst_8 : Module.{u₁, u₃} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₁ u₂, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (SMulZeroClass.toHasSmul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toAddZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u₂, u₁} k G (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u₁, u₂, u₁} k G k (CommSemiring.toSemiring.{u₁} k _inst_2) (SMulWithZero.toSmulZeroClass.{u₁, u₁} k k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MulZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toHasSmul.{u₁, u₃} k W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{u₁, u₃} k W (MulZeroClass.toHasZero.{u₁} k (MulZeroOneClass.toMulZeroClass.{u₁} k (MonoidWithZero.toMulZeroOneClass.{u₁} k (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{u₁, u₃} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8), (forall (g : G) (v : V), Eq.{succ u₃} W (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (SMul.smul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (SMulZeroClass.toHasSmul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (MulZeroClass.toHasZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (Finsupp.single.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) g (OfNat.ofNat.{u₁} k 1 (OfNat.mk.{u₁} k 1 (One.one.{u₁} k (AddMonoidWithOne.toOne.{u₁} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u₁} k (NonAssocSemiring.toAddCommMonoidWithOne.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))))))) v)) (SMul.smul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (SMulZeroClass.toHasSmul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (MulZeroClass.toHasZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (Finsupp.single.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) g (OfNat.ofNat.{u₁} k 1 (OfNat.mk.{u₁} k 1 (One.one.{u₁} k (AddMonoidWithOne.toOne.{u₁} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u₁} k (NonAssocSemiring.toAddCommMonoidWithOne.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))))))) (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) -> (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toNonAssocSemiring.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] {V : Type.{u3}} {W : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u3} W] [_inst_8 : Module.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7] [_inst_9 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u1, u3} k W (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u1, u3} k W (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u1, u3} k W (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (Module.toMulActionWithZero.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8), (forall (g : G) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v))) -> (LinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (RingHom.id.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9)
+  forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₄}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₂ u₁, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₂ u₁, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u₁, u₃} k V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u₁, u₃} k V (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₄} W] [_inst_8 : Module.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₂ u₁, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₂ u₁, u₄} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u₁, u₄} k W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u₁, u₄} k W (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u₁, u₄} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8), (forall (g : G) (v : V), Eq.{succ u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (HSMul.hSMul.{max u₂ u₁, u₄, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (instHSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) -> (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₂ u₁} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) (Monoid.toMulOneClass.{u₂} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.equivariant_of_linear_of_comm MonoidAlgebra.equivariantOfLinearOfCommₓ'. -/
 /-- Build a `k[G]`-linear map from a `k`-linear map and evidence that it is `G`-equivariant. -/
 def equivariantOfLinearOfComm : V →ₗ[MonoidAlgebra k G] W
@@ -1219,9 +1219,9 @@ def equivariantOfLinearOfComm : V →ₗ[MonoidAlgebra k G] W
 
 /- warning: monoid_algebra.equivariant_of_linear_of_comm_apply -> MonoidAlgebra.equivariantOfLinearOfComm_apply is a dubious translation:
 lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] {V : Type.{u3}} {W : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_2) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} k V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} k V (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u3} W] [_inst_8 : Module.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7] [_inst_9 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_2) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toHasSmul.{u1, u3} k W (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (SMulWithZero.toSmulZeroClass.{u1, u3} k W (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (MulActionWithZero.toSMulWithZero.{u1, u3} k W (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (Module.toMulActionWithZero.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (h : forall (g : G) (v : V), Eq.{succ u3} W (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f (SMul.smul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (SMulZeroClass.toHasSmul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MulZeroClass.toHasZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) g (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))))))) v)) (SMul.smul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (SMulZeroClass.toHasSmul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (MulZeroClass.toHasZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (Module.toMulActionWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) g (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))))))) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v))) (v : V), Eq.{succ u3} W (coeFn.{succ u3, succ u3} (LinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (RingHom.id.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) (fun (_x : LinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (RingHom.id.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) => V -> W) (LinearMap.hasCoeToFun.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_7 _inst_5 _inst_9 (RingHom.id.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)))) (MonoidAlgebra.equivariantOfLinearOfComm.{u1, u2, u3} k G _inst_1 _inst_2 V W _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 f h) v) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v)
+  forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₃}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₁ u₂, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toHasSmul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toAddZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u₂, u₁} k G (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u₁, u₂, u₁} k G k (CommSemiring.toSemiring.{u₁} k _inst_2) (SMulWithZero.toSmulZeroClass.{u₁, u₁} k k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MulZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u₁, u₃} k V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u₁, u₃} k V (MulZeroClass.toHasZero.{u₁} k (MulZeroOneClass.toMulZeroClass.{u₁} k (MonoidWithZero.toMulZeroOneClass.{u₁} k (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₃} W] [_inst_8 : Module.{u₁, u₃} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₁ u₂, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (SMulZeroClass.toHasSmul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toAddZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u₂, u₁} k G (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u₁, u₂, u₁} k G k (CommSemiring.toSemiring.{u₁} k _inst_2) (SMulWithZero.toSmulZeroClass.{u₁, u₁} k k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MulZeroClass.toHasZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toHasSmul.{u₁, u₃} k W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{u₁, u₃} k W (MulZeroClass.toHasZero.{u₁} k (MulZeroOneClass.toMulZeroClass.{u₁} k (MonoidWithZero.toMulZeroOneClass.{u₁} k (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{u₁, u₃} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (h : forall (g : G) (v : V), Eq.{succ u₃} W (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (SMul.smul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (SMulZeroClass.toHasSmul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (MulZeroClass.toHasZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} V (AddMonoid.toAddZeroClass.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3))) (Module.toMulActionWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (Finsupp.single.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) g (OfNat.ofNat.{u₁} k 1 (OfNat.mk.{u₁} k 1 (One.one.{u₁} k (AddMonoidWithOne.toOne.{u₁} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u₁} k (NonAssocSemiring.toAddCommMonoidWithOne.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))))))) v)) (SMul.smul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (SMulZeroClass.toHasSmul.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (MulZeroClass.toHasZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (Semiring.toMonoidWithZero.{max u₂ u₁} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u₃} W (AddMonoid.toAddZeroClass.{u₃} W (AddCommMonoid.toAddMonoid.{u₃} W _inst_7))) (Module.toMulActionWithZero.{max u₂ u₁, u₃} (Finsupp.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))))) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (Finsupp.single.{u₂, u₁} G k (MulZeroClass.toHasZero.{u₁} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u₁} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) g (OfNat.ofNat.{u₁} k 1 (OfNat.mk.{u₁} k 1 (One.one.{u₁} k (AddMonoidWithOne.toOne.{u₁} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u₁} k (NonAssocSemiring.toAddCommMonoidWithOne.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))))))) (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) (v : V), Eq.{succ u₃} W (coeFn.{succ u₃, succ u₃} (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toNonAssocSemiring.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) (fun (_x : LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toNonAssocSemiring.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) => V -> W) (LinearMap.hasCoeToFun.{max u₁ u₂, max u₁ u₂, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_7 _inst_5 _inst_9 (RingHom.id.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toNonAssocSemiring.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)))) (MonoidAlgebra.equivariantOfLinearOfComm.{u₁, u₂, u₃} k G _inst_1 _inst_2 V W _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 f h) v) (coeFn.{succ u₃, succ u₃} (LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u₁, u₁, u₃, u₃} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u₁, u₁, u₃, u₃} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] {V : Type.{u3}} {W : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u3} W] [_inst_8 : Module.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7] [_inst_9 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u1, u3} k W (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u1, u3} k W (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u1, u3} k W (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (Module.toMulActionWithZero.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (h : forall (g : G) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v))) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (RingHom.id.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_7 _inst_5 _inst_9 (RingHom.id.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1)))) (MonoidAlgebra.equivariantOfLinearOfComm.{u1, u2, u3} k G _inst_1 _inst_2 V W _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 f h) v) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v)
+  forall {k : Type.{u₁}} {G : Type.{u₂}} [_inst_1 : Monoid.{u₂} G] [_inst_2 : CommSemiring.{u₁} k] {V : Type.{u₃}} {W : Type.{u₄}} [_inst_3 : AddCommMonoid.{u₃} V] [_inst_4 : Module.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3] [_inst_5 : Module.{max u₂ u₁, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u₁, max u₂ u₁, u₃} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u₁, u₃} k V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u₁, u₃} k V (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u₁, u₃} k V (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{u₁, u₃} k V (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u₄} W] [_inst_8 : Module.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7] [_inst_9 : Module.{max u₂ u₁, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u₁, max u₂ u₁, u₄} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Algebra.toSMul.{u₁, max u₁ u₂} k (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u₁, u₂, u₁} k G k _inst_2 (CommSemiring.toSemiring.{u₁} k _inst_2) (Algebra.id.{u₁} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u₁, u₄} k W (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u₁, u₄} k W (CommMonoidWithZero.toZero.{u₁} k (CommSemiring.toCommMonoidWithZero.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u₁, u₄} k W (Semiring.toMonoidWithZero.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)) (AddMonoid.toZero.{u₄} W (AddCommMonoid.toAddMonoid.{u₄} W _inst_7)) (Module.toMulActionWithZero.{u₁, u₄} k W (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (h : forall (g : G) (v : V), Eq.{succ u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f (HSMul.hSMul.{max u₂ u₁, u₃, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V V (instHSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (SMulZeroClass.toSMul.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₃} V (AddCommMonoid.toAddMonoid.{u₃} V _inst_3)) (Module.toMulActionWithZero.{max u₁ u₂, u₃} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) v)) (HSMul.hSMul.{max u₂ u₁, u₄, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (instHSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (SMulZeroClass.toSMul.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (MonoidWithZero.toZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1))) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (Semiring.toMonoidWithZero.{max u₁ u₂} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1)) (AddMonoid.toZero.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u₁ u₂, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) g (OfNat.ofNat.{u₁} k 1 (One.toOfNat1.{u₁} k (Semiring.toOne.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))))) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v))) (v : V), Eq.{succ u₄} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (RingHom.id.{max u₂ u₁} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) (Monoid.toMulOneClass.{u₂} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{max u₁ u₂, max u₁ u₂, u₃, u₄} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) V W (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_1) _inst_3 _inst_7 _inst_5 _inst_9 (RingHom.id.{max u₂ u₁} (MonoidAlgebra.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u₁, u₂} k G (CommSemiring.toSemiring.{u₁} k _inst_2) (Monoid.toMulOneClass.{u₂} G _inst_1)))) (MonoidAlgebra.equivariantOfLinearOfComm.{u₁, u₂, u₃, u₄} k G _inst_1 _inst_2 V W _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 f h) v) (FunLike.coe.{max (succ u₃) (succ u₄), succ u₃, succ u₄} (LinearMap.{u₁, u₁, u₃, u₄} k k (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u₁, u₁, u₃, u₄} k k V W (CommSemiring.toSemiring.{u₁} k _inst_2) (CommSemiring.toSemiring.{u₁} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u₁} k (Semiring.toNonAssocSemiring.{u₁} k (CommSemiring.toSemiring.{u₁} k _inst_2)))) f v)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.equivariant_of_linear_of_comm_apply MonoidAlgebra.equivariantOfLinearOfComm_applyₓ'. -/
 @[simp]
 theorem equivariantOfLinearOfComm_apply (v : V) : (equivariantOfLinearOfComm f h) v = f v :=
Diff
@@ -606,6 +606,12 @@ theorem mul_single_one_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x
   f.mul_single_apply_aux fun a => by rw [mul_one]
 #align monoid_algebra.mul_single_one_apply MonoidAlgebra.mul_single_one_apply
 
+/- warning: monoid_algebra.mul_single_apply_of_not_exists_mul -> MonoidAlgebra.mul_single_apply_of_not_exists_mul is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (r : k) {g : G} {g' : G} (x : MonoidAlgebra.{u1, u2} k G _inst_1), (Not (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G g' (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) d g)))) -> (Eq.{succ u1} k (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) x (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) g r)) g') (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (r : k) {g : G} {g' : G} (x : MonoidAlgebra.{u1, u2} k G _inst_1), (Not (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G g' (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) d g)))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) x (MonoidAlgebra.single.{u1, u2} k G _inst_1 g r)) g') (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.mul_single_apply_of_not_exists_mul 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 * Finsupp.single g r : MonoidAlgebra k G) g' = 0 := by
   classical
@@ -649,6 +655,12 @@ theorem single_one_mul_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x
   f.single_mul_apply_aux fun a => by rw [one_mul]
 #align monoid_algebra.single_one_mul_apply MonoidAlgebra.single_one_mul_apply
 
+/- warning: monoid_algebra.single_mul_apply_of_not_exists_mul -> MonoidAlgebra.single_mul_apply_of_not_exists_mul is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (r : k) {g : G} {g' : G} (x : MonoidAlgebra.{u1, u2} k G _inst_1), (Not (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G g' (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) g d)))) -> (Eq.{succ u1} k (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) g r) x) g') (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (r : k) {g : G} {g' : G} (x : MonoidAlgebra.{u1, u2} k G _inst_1), (Not (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G g' (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) g d)))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) (MonoidAlgebra.single.{u1, u2} k G _inst_1 g r) x) g') (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_mul_apply_of_not_exists_mul 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) : (Finsupp.single g r * x : MonoidAlgebra k G) g' = 0 := by
   classical
@@ -1923,6 +1935,12 @@ theorem mul_single_zero_apply [AddZeroClass G] (f : AddMonoidAlgebra k G) (r : k
   f.mul_single_apply_aux r _ _ _ fun a => by rw [add_zero]
 #align add_monoid_algebra.mul_single_zero_apply AddMonoidAlgebra.mul_single_zero_apply
 
+/- warning: add_monoid_algebra.mul_single_apply_of_not_exists_add -> AddMonoidAlgebra.mul_single_apply_of_not_exists_add is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (r : k) {g : G} {g' : G} (x : AddMonoidAlgebra.{u1, u2} k G _inst_1), (Not (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G g' (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) d g)))) -> (Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) x (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) g r)) g') (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (r : k) {g : G} {g' : G} (x : AddMonoidAlgebra.{u1, u2} k G _inst_1), (Not (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G g' (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) d g)))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) x (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 g r)) g') (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mul_single_apply_of_not_exists_add AddMonoidAlgebra.mul_single_apply_of_not_exists_addₓ'. -/
 theorem mul_single_apply_of_not_exists_add [Add G] (r : k) {g g' : G} (x : AddMonoidAlgebra k G)
     (h : ¬∃ d, g' = d + g) : (x * Finsupp.single g r : AddMonoidAlgebra k G) g' = 0 :=
   @MonoidAlgebra.mul_single_apply_of_not_exists_mul k (Multiplicative G) _ _ _ _ _ _ h
@@ -1950,6 +1968,12 @@ theorem single_zero_mul_apply [AddZeroClass G] (f : AddMonoidAlgebra k G) (r : k
   f.single_mul_apply_aux r _ _ _ fun a => by rw [zero_add]
 #align add_monoid_algebra.single_zero_mul_apply AddMonoidAlgebra.single_zero_mul_apply
 
+/- warning: add_monoid_algebra.single_mul_apply_of_not_exists_add -> AddMonoidAlgebra.single_mul_apply_of_not_exists_add is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (r : k) {g : G} {g' : G} (x : AddMonoidAlgebra.{u1, u2} k G _inst_1), (Not (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G g' (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) g d)))) -> (Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) g r) x) g') (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (r : k) {g : G} {g' : G} (x : AddMonoidAlgebra.{u1, u2} k G _inst_1), (Not (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G g' (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) g d)))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 g r) x) g') (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) g') _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.single_mul_apply_of_not_exists_add AddMonoidAlgebra.single_mul_apply_of_not_exists_addₓ'. -/
 theorem single_mul_apply_of_not_exists_add [Add G] (r : k) {g g' : G} (x : AddMonoidAlgebra k G)
     (h : ¬∃ d, g' = g + d) : (Finsupp.single g r * x : AddMonoidAlgebra k G) g' = 0 :=
   @MonoidAlgebra.single_mul_apply_of_not_exists_mul k (Multiplicative G) _ _ _ _ _ _ h
Diff
@@ -1316,7 +1316,7 @@ variable [Semiring k]
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G], RingEquiv.{max u1 u2, max u1 u2} (MulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.hasMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.hasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.hasMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.hasMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G], RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G], RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.mul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.mul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.add.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.mul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.op_ring_equiv MonoidAlgebra.opRingEquivₓ'. -/
 /-- The opposite of an `monoid_algebra R I` equivalent as a ring to
 the `monoid_algebra Rᵐᵒᵖ Iᵐᵒᵖ` over the opposite ring, taking elements to their opposite. -/
@@ -1333,16 +1333,12 @@ protected noncomputable def opRingEquiv [Monoid G] :
       simp }
 #align monoid_algebra.op_ring_equiv MonoidAlgebra.opRingEquiv
 
-/- warning: monoid_algebra.op_ring_equiv_single -> MonoidAlgebra.opRingEquiv_single is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] (r : k) (x : G), Eq.{succ (max u1 u2)} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (RingEquiv.{max u1 u2, max u1 u2} (MulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.hasMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.hasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.hasMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.hasMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))) (fun (_x : RingEquiv.{max u1 u2, max u1 u2} (MulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.hasMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.hasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.hasMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.hasMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))) => (MulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1)) -> (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1))) (RingEquiv.hasCoeToFun.{max u1 u2, max u1 u2} (MulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.hasMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.hasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.hasMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.hasMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.opRingEquiv.{u1, u2} k G _inst_1 _inst_2) (MulOpposite.op.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r))) (Finsupp.single.{u2, u1} (MulOpposite.{u2} G) (MulOpposite.{u1} k) (MulZeroClass.toHasZero.{u1} (MulOpposite.{u1} k) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} (MulOpposite.{u1} k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} k) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} k) (MulOpposite.semiring.{u1} k _inst_1))))) (MulOpposite.op.{u2} G x) (MulOpposite.op.{u1} k r))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] (r : k) (x : G), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) => MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.op.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.single.{u1, u2} k G _inst_1 x r))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (fun (_x : MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) => MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulEquivClass.toEquivLike.{max u2 u1, max u2 u1, max u2 u1} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (RingEquivClass.toMulEquivClass.{max u2 u1, max u2 u1, max u2 u1} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (RingEquiv.instRingEquivClassRingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))))))) (MonoidAlgebra.opRingEquiv.{u1, u2} k G _inst_1 _inst_2) (MulOpposite.op.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.single.{u1, u2} k G _inst_1 x r))) (MonoidAlgebra.single.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.op.{u2} G x) (MulOpposite.op.{u1} k r))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.op_ring_equiv_single MonoidAlgebra.opRingEquiv_singleₓ'. -/
+#print MonoidAlgebra.opRingEquiv_single /-
 @[simp]
 theorem opRingEquiv_single [Monoid G] (r : k) (x : G) :
     MonoidAlgebra.opRingEquiv (op (single x r)) = single (op x) (op r) := by simp
 #align monoid_algebra.op_ring_equiv_single MonoidAlgebra.opRingEquiv_single
+-/
 
 #print MonoidAlgebra.opRingEquiv_symm_single /-
 @[simp]
@@ -2238,7 +2234,7 @@ variable [Semiring k]
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddCommMonoid.{u2} G], RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.hasMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (MulOpposite.hasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Finsupp.add.{u2, u1} G k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1) (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (Finsupp.add.{u2, u1} G (MulOpposite.{u1} k) (MulOpposite.addZeroClass.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddCommMonoid.{u2} G], RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddCommMonoid.{u2} G], RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.mul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (MulOpposite.add.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.op_ring_equiv AddMonoidAlgebra.opRingEquivₓ'. -/
 /-- The opposite of an `add_monoid_algebra R I` is ring equivalent to
 the `add_monoid_algebra Rᵐᵒᵖ I` over the opposite ring, taking elements to their opposite. -/
@@ -2256,16 +2252,12 @@ protected noncomputable def opRingEquiv [AddCommMonoid G] :
       simp only [map_range_single, single_mul_single, ← op_mul, add_comm] }
 #align add_monoid_algebra.op_ring_equiv AddMonoidAlgebra.opRingEquiv
 
-/- warning: add_monoid_algebra.op_ring_equiv_single -> AddMonoidAlgebra.opRingEquiv_single is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddCommMonoid.{u2} G] (r : k) (x : G), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1)) (coeFn.{succ (max u2 u1), succ (max u2 u1)} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.hasMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (MulOpposite.hasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Finsupp.add.{u2, u1} G k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1) (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (Finsupp.add.{u2, u1} G (MulOpposite.{u1} k) (MulOpposite.addZeroClass.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) (fun (_x : RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.hasMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (MulOpposite.hasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Finsupp.add.{u2, u1} G k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1) (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (Finsupp.add.{u2, u1} G (MulOpposite.{u1} k) (MulOpposite.addZeroClass.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) => (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) -> (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1))) (RingEquiv.hasCoeToFun.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.hasMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (MulOpposite.hasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Finsupp.add.{u2, u1} G k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1) (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (Finsupp.add.{u2, u1} G (MulOpposite.{u1} k) (MulOpposite.addZeroClass.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) (AddMonoidAlgebra.opRingEquiv.{u1, u2} k G _inst_1 _inst_2) (MulOpposite.op.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r))) (Finsupp.single.{u2, u1} G (MulOpposite.{u1} k) (MulZeroClass.toHasZero.{u1} (MulOpposite.{u1} k) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} (MulOpposite.{u1} k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} k) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} k) (MulOpposite.semiring.{u1} k _inst_1))))) x (MulOpposite.op.{u1} k r))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddCommMonoid.{u2} G] (r : k) (x : G), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) => AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.op.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x r))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (fun (_x : MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) => AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulEquivClass.toEquivLike.{max u2 u1, max u2 u1, max u2 u1} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (RingEquivClass.toMulEquivClass.{max u2 u1, max u2 u1, max u2 u1} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (MulOpposite.instAddMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))))) (RingEquiv.instRingEquivClassRingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))))))) (AddMonoidAlgebra.opRingEquiv.{u1, u2} k G _inst_1 _inst_2) (MulOpposite.op.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x r))) (AddMonoidAlgebra.single.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) x (MulOpposite.op.{u1} k r))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.op_ring_equiv_single AddMonoidAlgebra.opRingEquiv_singleₓ'. -/
+#print AddMonoidAlgebra.opRingEquiv_single /-
 @[simp]
 theorem opRingEquiv_single [AddCommMonoid G] (r : k) (x : G) :
     AddMonoidAlgebra.opRingEquiv (op (single x r)) = single x (op r) := by simp
 #align add_monoid_algebra.op_ring_equiv_single AddMonoidAlgebra.opRingEquiv_single
+-/
 
 #print AddMonoidAlgebra.opRingEquiv_symm_single /-
 @[simp]
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Yury G. Kudryashov, Scott Morrison
 
 ! This file was ported from Lean 3 source module algebra.monoid_algebra.basic
-! leanprover-community/mathlib commit 69c6a5a12d8a2b159f20933e60115a4f2de62b58
+! leanprover-community/mathlib commit 57e09a1296bfb4330ddf6624f1028ba186117d82
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -606,6 +606,19 @@ theorem mul_single_one_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x
   f.mul_single_apply_aux fun a => by rw [mul_one]
 #align monoid_algebra.mul_single_one_apply MonoidAlgebra.mul_single_one_apply
 
+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 * Finsupp.single g r : MonoidAlgebra k G) g' = 0 := by
+  classical
+    rw [mul_apply, Finsupp.sum_comm, Finsupp.sum_single_index]
+    swap
+    · simp_rw [Finsupp.sum, MulZeroClass.mul_zero, if_t_t, Finset.sum_const_zero]
+    · apply Finset.sum_eq_zero
+      simp_rw [ite_eq_right_iff]
+      rintro g'' hg'' rfl
+      exfalso
+      exact h ⟨_, rfl⟩
+#align monoid_algebra.mul_single_apply_of_not_exists_mul MonoidAlgebra.mul_single_apply_of_not_exists_mul
+
 /- warning: monoid_algebra.single_mul_apply_aux -> MonoidAlgebra.single_mul_apply_aux is a dubious translation:
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) {r : k} {x : G} {y : G} {z : G}, (forall (a : G), Iff (Eq.{succ u2} G (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) x a) y) (Eq.{succ u2} G a z)) -> (Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (instHMul.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r) f) y) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) r (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f z)))
@@ -636,6 +649,19 @@ theorem single_one_mul_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x
   f.single_mul_apply_aux fun a => by rw [one_mul]
 #align monoid_algebra.single_one_mul_apply MonoidAlgebra.single_one_mul_apply
 
+theorem single_mul_apply_of_not_exists_mul [Mul G] (r : k) {g g' : G} (x : MonoidAlgebra k G)
+    (h : ¬∃ d, g' = g * d) : (Finsupp.single g r * x : MonoidAlgebra k G) g' = 0 := by
+  classical
+    rw [mul_apply, Finsupp.sum_single_index]
+    swap
+    · simp_rw [Finsupp.sum, MulZeroClass.zero_mul, if_t_t, Finset.sum_const_zero]
+    · apply Finset.sum_eq_zero
+      simp_rw [ite_eq_right_iff]
+      rintro g'' hg'' rfl
+      exfalso
+      exact h ⟨_, rfl⟩
+#align monoid_algebra.single_mul_apply_of_not_exists_mul MonoidAlgebra.single_mul_apply_of_not_exists_mul
+
 /- warning: monoid_algebra.lift_nc_smul -> MonoidAlgebra.liftNC_smul is a dubious translation:
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] {R : Type.{u3}} [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u1, u2} k G _inst_1), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => G -> R) (MonoidHom.hasCoeToFun.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) (SMul.smul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) c φ)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f c) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => G -> R) (MonoidHom.hasCoeToFun.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) φ))
@@ -1901,6 +1927,11 @@ theorem mul_single_zero_apply [AddZeroClass G] (f : AddMonoidAlgebra k G) (r : k
   f.mul_single_apply_aux r _ _ _ fun a => by rw [add_zero]
 #align add_monoid_algebra.mul_single_zero_apply AddMonoidAlgebra.mul_single_zero_apply
 
+theorem mul_single_apply_of_not_exists_add [Add G] (r : k) {g g' : G} (x : AddMonoidAlgebra k G)
+    (h : ¬∃ d, g' = d + g) : (x * Finsupp.single g r : AddMonoidAlgebra k G) g' = 0 :=
+  @MonoidAlgebra.mul_single_apply_of_not_exists_mul k (Multiplicative G) _ _ _ _ _ _ h
+#align add_monoid_algebra.mul_single_apply_of_not_exists_add AddMonoidAlgebra.mul_single_apply_of_not_exists_add
+
 /- warning: add_monoid_algebra.single_mul_apply_aux -> AddMonoidAlgebra.single_mul_apply_aux is a dubious translation:
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G) (y : G) (z : G), (forall (a : G), Iff (Eq.{succ u2} G (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) x a) y) (Eq.{succ u2} G a z)) -> (Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r) f) y) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) r (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f z)))
@@ -1923,6 +1954,11 @@ theorem single_zero_mul_apply [AddZeroClass G] (f : AddMonoidAlgebra k G) (r : k
   f.single_mul_apply_aux r _ _ _ fun a => by rw [zero_add]
 #align add_monoid_algebra.single_zero_mul_apply AddMonoidAlgebra.single_zero_mul_apply
 
+theorem single_mul_apply_of_not_exists_add [Add G] (r : k) {g g' : G} (x : AddMonoidAlgebra k G)
+    (h : ¬∃ d, g' = g + d) : (Finsupp.single g r * x : AddMonoidAlgebra k G) g' = 0 :=
+  @MonoidAlgebra.single_mul_apply_of_not_exists_mul k (Multiplicative G) _ _ _ _ _ _ h
+#align add_monoid_algebra.single_mul_apply_of_not_exists_add AddMonoidAlgebra.single_mul_apply_of_not_exists_add
+
 /- warning: add_monoid_algebra.mul_single_apply -> AddMonoidAlgebra.mul_single_apply is a dubious translation:
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddGroup.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G) (y : G), Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2)))))) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r)) y) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f (HSub.hSub.{u2, u2, u2} G G G (instHSub.{u2} G (SubNegMonoid.toHasSub.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))) y x)) r)
Diff
@@ -1339,7 +1339,7 @@ variable [Module k V] [Module (MonoidAlgebra k G) V] [IsScalarTower k (MonoidAlg
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {V : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3] [_inst_5 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3] [_inst_6 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_1))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_1) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} k V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} k V (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4))))] (W : Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4), (forall (g : G) (v : V), (Membership.Mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) v W) -> (Membership.Mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) (SMul.smul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) => G -> (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) g) v) W)) -> (Submodule.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {V : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4))))] (W : Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4), (forall (g : G) (v : V), (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.instSetLikeSubmodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) v W) -> (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.instSetLikeSubmodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) (HSMul.hSMul.{max u1 u2, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V V (instHSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (SMulZeroClass.toSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidWithZero.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5))))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) g) v) W)) -> (Submodule.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {V : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4))))] (W : Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4), (forall (g : G) (v : V), (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) v W) -> (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) (HSMul.hSMul.{max u1 u2, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V V (instHSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (SMulZeroClass.toSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidWithZero.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5))))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) g) v) W)) -> (Submodule.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.submodule_of_smul_mem MonoidAlgebra.submoduleOfSmulMemₓ'. -/
 /-- A submodule over `k` which is stable under scalar multiplication by elements of `G` is a
 submodule over `monoid_algebra k G`  -/
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Yury G. Kudryashov, Scott Morrison
 
 ! This file was ported from Lean 3 source module algebra.monoid_algebra.basic
-! leanprover-community/mathlib commit 6623e6af705e97002a9054c1c05a980180276fc1
+! leanprover-community/mathlib commit 69c6a5a12d8a2b159f20933e60115a4f2de62b58
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -17,6 +17,9 @@ import Mathbin.LinearAlgebra.Finsupp
 /-!
 # Monoid algebras
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 When the domain of a `finsupp` has a multiplicative or additive structure, we can define
 a convolution product. To mathematicians this structure is known as the "monoid algebra",
 i.e. the finite formal linear combinations over a given semiring of elements of the monoid.
Diff
@@ -110,7 +110,7 @@ def liftNC (f : k →+ R) (g : G → R) : MonoidAlgebra k G →+ R :=
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : NonUnitalNonAssocSemiring.{u3} R] (f : AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (g : G -> R) (a : G) (b : k), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 _inst_2 f g) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a b)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R _inst_2))) (coeFn.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (fun (_x : AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) => k -> R) (AddMonoidHom.hasCoeToFun.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) f b) (g a))
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : NonUnitalNonAssocSemiring.{u1} R] (f : AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (g : G -> R) (a : G) (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 _inst_2 f g) (MonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) b) R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) b) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) b) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) b) _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddZeroClass.toAdd.{u2} k (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) f b) (g a))
+  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : NonUnitalNonAssocSemiring.{u1} R] (f : AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (g : G -> R) (a : G) (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 _inst_2 f g) (MonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddZeroClass.toAdd.{u2} k (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) f b) (g a))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_single MonoidAlgebra.liftNC_singleₓ'. -/
 @[simp]
 theorem liftNC_single (f : k →+ R) (g : G → R) (a : G) (b : k) :
@@ -163,7 +163,7 @@ variable [Semiring R]
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] [_inst_3 : Semiring.{u3} R] {g_hom : Type.{u4}} [_inst_4 : MulHomClass.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : g_hom) (a : MonoidAlgebra.{u1, u2} k G _inst_1) (b : MonoidAlgebra.{u1, u2} k G _inst_1), (forall {x : G} {y : G}, (Membership.Mem.{u2, u2} G (Finset.{u2} G) (Finset.hasMem.{u2} G) y (Finsupp.support.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a)) -> (Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) b x)) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g y))) -> (Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) a) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) b)))
 but is expected to have type
-  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Mul.{u4} G] [_inst_3 : Semiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : MulHomClass.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : g_hom) (a : MonoidAlgebra.{u3, u4} k G _inst_1) (b : MonoidAlgebra.{u3, u4} k G _inst_1), (forall {x : G} {y : G}, (Membership.mem.{u4, u4} G (Finset.{u4} G) (Finset.instMembershipFinset.{u4} G) y (Finsupp.support.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1)) a)) -> (Commute.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) _inst_3))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u3} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g y))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.mul.{u3, u4} k G _inst_1 _inst_2)) a b)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.mul.{u3, u4} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) a) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) b)))
+  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Mul.{u4} G] [_inst_3 : Semiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : MulHomClass.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : g_hom) (a : MonoidAlgebra.{u3, u4} k G _inst_1) (b : MonoidAlgebra.{u3, u4} k G _inst_1), (forall {x : G} {y : G}, (Membership.mem.{u4, u4} G (Finset.{u4} G) (Finset.instMembershipFinset.{u4} G) y (Finsupp.support.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1)) a)) -> (Commute.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) _inst_3))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u3} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g y))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.mul.{u3, u4} k G _inst_1 _inst_2)) a b)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.mul.{u3, u4} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) a) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) b)))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_mul MonoidAlgebra.liftNC_mulₓ'. -/
 theorem liftNC_mul {g_hom : Type _} [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)) :
@@ -217,7 +217,7 @@ theorem one_def : (1 : MonoidAlgebra k G) = single 1 1 :=
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : NonAssocSemiring.{u3} R] [_inst_2 : Semiring.{u1} k] [_inst_3 : One.{u2} G] {g_hom : Type.{u4}} [_inst_4 : OneHomClass.{u4, u2, u3} g_hom G R _inst_3 (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1)))] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (g : g_hom), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_2))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_1))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_2))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_1))))) => (MonoidAlgebra.{u1, u2} k G _inst_2) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_2))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_1))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_1) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1)))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1 (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (OneHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_3 (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))) _inst_4)) g)) (OfNat.ofNat.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) 1 (OfNat.mk.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) 1 (One.one.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.one.{u1, u2} k G _inst_2 _inst_3))))) (OfNat.ofNat.{u3} R 1 (OfNat.mk.{u3} R 1 (One.one.{u3} R (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))))))
 but is expected to have type
-  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] [_inst_2 : Semiring.{u3} k] [_inst_3 : One.{u4} G] {g_hom : Type.{u2}} [_inst_4 : OneHomClass.{u2, u4, u1} g_hom G R _inst_3 (NonAssocSemiring.toOne.{u1} R _inst_1)] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1) (g : g_hom), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (MonoidAlgebra.{u3, u4} k G _inst_2) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_2) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_2))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R _inst_1)))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1) k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1 (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1)) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1254 : G) => R) _x) (OneHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_3 (NonAssocSemiring.toOne.{u1} R _inst_1) _inst_4) g)) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) 1 (One.toOfNat1.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) (NonAssocSemiring.toOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) _inst_1)))
+  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] [_inst_2 : Semiring.{u3} k] [_inst_3 : One.{u4} G] {g_hom : Type.{u2}} [_inst_4 : OneHomClass.{u2, u4, u1} g_hom G R _inst_3 (NonAssocSemiring.toOne.{u1} R _inst_1)] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1) (g : g_hom), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (MonoidAlgebra.{u3, u4} k G _inst_2) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_2) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_2))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R _inst_1)))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1) k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1 (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1)) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1262 : G) => R) _x) (OneHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_3 (NonAssocSemiring.toOne.{u1} R _inst_1) _inst_4) g)) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) 1 (One.toOfNat1.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) (NonAssocSemiring.toOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) _inst_1)))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_one MonoidAlgebra.liftNC_oneₓ'. -/
 @[simp]
 theorem liftNC_one {g_hom : Type _} [OneHomClass g_hom G R] (f : k →+* R) (g : g_hom) :
@@ -279,7 +279,7 @@ variable [Semiring R]
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : G), Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f x) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => G -> R) (MonoidHom.hasCoeToFun.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g y)) -> (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : G), Commute.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) x) (NonUnitalNonAssocSemiring.toMul.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) x) (Semiring.toNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) x) _inst_3))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.instRingHomClassRingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) f x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => R) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G R (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g y)) -> (RingHom.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : G), Commute.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) x) (NonUnitalNonAssocSemiring.toMul.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) x) (Semiring.toNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) x) _inst_3))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.instRingHomClassRingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) f x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => R) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G R (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g y)) -> (RingHom.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_ring_hom MonoidAlgebra.liftNCRingHomₓ'. -/
 /-- `lift_nc` as a `ring_hom`, for when `f x` and `g y` commute -/
 def liftNCRingHom (f : k →+* R) (g : G →* R) (h_comm : ∀ x y, Commute (f x) (g y)) :
@@ -474,7 +474,7 @@ section
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {α₂ : Type.{u3}} [_inst_2 : Semiring.{u2} β] [_inst_3 : One.{u1} α] [_inst_4 : One.{u3} α₂] {F : Type.{u4}} [_inst_5 : OneHomClass.{u4, u1, u3} F α α₂ _inst_3 _inst_4] (f : F), Eq.{max (succ u3) (succ u2)} (Finsupp.{u3, u2} α₂ β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))))))) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (OneHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) (OfNat.ofNat.{max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) 1 (OfNat.mk.{max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) 1 (One.one.{max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) (MonoidAlgebra.one.{u2, u1} β α _inst_2 _inst_3))))) (OfNat.ofNat.{max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) 1 (OfNat.mk.{max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) 1 (One.one.{max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (MonoidAlgebra.one.{u2, u3} β α₂ _inst_2 _inst_4))))
 but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : One.{u4} α] [_inst_4 : One.{u2} α₂] {F : Type.{u1}} [_inst_5 : OneHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1254 : α) => α₂) _x) (OneHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (OfNat.ofNat.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) 1 (One.toOfNat1.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.one.{u3, u4} β α _inst_2 _inst_3)))) (OfNat.ofNat.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) 1 (One.toOfNat1.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.one.{u3, u2} β α₂ _inst_2 _inst_4)))
+  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : One.{u4} α] [_inst_4 : One.{u2} α₂] {F : Type.{u1}} [_inst_5 : OneHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1262 : α) => α₂) _x) (OneHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (OfNat.ofNat.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) 1 (One.toOfNat1.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.one.{u3, u4} β α _inst_2 _inst_3)))) (OfNat.ofNat.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) 1 (One.toOfNat1.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.one.{u3, u2} β α₂ _inst_2 _inst_4)))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.map_domain_one MonoidAlgebra.mapDomain_oneₓ'. -/
 /-- Like `finsupp.map_domain_zero`, but for the `1` we define in this file -/
 @[simp]
@@ -488,7 +488,7 @@ theorem mapDomain_one {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β]
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {α₂ : Type.{u3}} [_inst_2 : Semiring.{u2} β] [_inst_3 : Mul.{u1} α] [_inst_4 : Mul.{u3} α₂] {F : Type.{u4}} [_inst_5 : MulHomClass.{u4, u1, u3} F α α₂ _inst_3 _inst_4] (f : F) (x : MonoidAlgebra.{u2, u1} β α _inst_2) (y : MonoidAlgebra.{u2, u1} β α _inst_2), Eq.{max (succ u3) (succ u2)} (Finsupp.{u3, u2} α₂ β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))))))) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (MulHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) (MonoidAlgebra.{u2, u1} β α _inst_2) (MonoidAlgebra.{u2, u1} β α _inst_2) (instHMul.{max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) (MonoidAlgebra.mul.{u2, u1} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (instHMul.{max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (MonoidAlgebra.mul.{u2, u3} β α₂ _inst_2 _inst_4)) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (MulHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) x) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (MulHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) y))
 but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : Mul.{u4} α] [_inst_4 : Mul.{u2} α₂] {F : Type.{u1}} [_inst_5 : MulHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F) (x : MonoidAlgebra.{u3, u4} β α _inst_2) (y : MonoidAlgebra.{u3, u4} β α _inst_2), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (HMul.hMul.{max u4 u3, max u4 u3, max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.{u3, u4} β α _inst_2) (instHMul.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.mul.{u3, u4} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u3 u2, max u3 u2, max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (instHMul.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mul.{u3, u2} β α₂ _inst_2 _inst_4)) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) x) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) y))
+  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : Mul.{u4} α] [_inst_4 : Mul.{u2} α₂] {F : Type.{u1}} [_inst_5 : MulHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F) (x : MonoidAlgebra.{u3, u4} β α _inst_2) (y : MonoidAlgebra.{u3, u4} β α _inst_2), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (HMul.hMul.{max u4 u3, max u4 u3, max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.{u3, u4} β α _inst_2) (instHMul.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.mul.{u3, u4} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u3 u2, max u3 u2, max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (instHMul.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mul.{u3, u2} β α₂ _inst_2 _inst_4)) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) x) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) y))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.map_domain_mul MonoidAlgebra.mapDomain_mulₓ'. -/
 /-- Like `finsupp.map_domain_add`, but for the convolutive multiplication we define in this file -/
 theorem mapDomain_mul {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [Mul α] [Mul α₂]
@@ -536,7 +536,7 @@ end
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (g : G) (r : k), Eq.{succ (max u1 u2)} (MonoidAlgebra.{u1, u2} k G _inst_1) (SMul.smul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) r (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => G -> (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) g)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) g r)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (g : G) (r : k), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (instHSMul.{u1, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (SMulZeroClass.toSMul.{u1, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (MulZeroOneClass.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G _inst_2) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) g)) (MonoidAlgebra.single.{u1, u2} k G _inst_1 g r)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (g : G) (r : k), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (instHSMul.{u1, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (SMulZeroClass.toSMul.{u1, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (MulZeroOneClass.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G _inst_2) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) g)) (MonoidAlgebra.single.{u1, u2} k G _inst_1 g r)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.smul_of MonoidAlgebra.smul_ofₓ'. -/
 theorem smul_of [MulOneClass G] (g : G) (r : k) : r • of k G g = single g r := by simp
 #align monoid_algebra.smul_of MonoidAlgebra.smul_of
@@ -545,7 +545,7 @@ theorem smul_of [MulOneClass G] (g : G) (r : k) : r • of k G g = single g r :=
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Nontrivial.{u1} k], Function.Injective.{succ u2, succ (max u1 u2)} G (MonoidAlgebra.{u1, u2} k G _inst_1) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => G -> (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Nontrivial.{u1} k], Function.Injective.{succ u2, max (succ u1) (succ u2)} G (MonoidAlgebra.{u1, u2} k G _inst_1) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G _inst_2) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Nontrivial.{u1} k], Function.Injective.{succ u2, max (succ u1) (succ u2)} G (MonoidAlgebra.{u1, u2} k G _inst_1) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G _inst_2) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.of_injective MonoidAlgebra.of_injectiveₓ'. -/
 theorem of_injective [MulOneClass G] [Nontrivial k] : Function.Injective (of k G) := fun a b h => by
   simpa using (single_eq_single_iff _ _ _ _).mp h
@@ -637,7 +637,7 @@ theorem single_one_mul_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] {R : Type.{u3}} [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u1, u2} k G _inst_1), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => G -> R) (MonoidHom.hasCoeToFun.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) (SMul.smul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) c φ)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f c) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => G -> R) (MonoidHom.hasCoeToFun.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) φ))
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} [_inst_1 : Semiring.{u2} k] [_inst_2 : MulOneClass.{u3} G] {R : Type.{u1}} [_inst_3 : Semiring.{u1} R] (f : RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u2, u3} k G _inst_1), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MulZeroOneClass.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R (MulOneClass.toMul.{u3} G _inst_2) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MulZeroOneClass.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) φ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) _inst_3)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f c) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R (MulOneClass.toMul.{u3} G _inst_2) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) φ))
+  forall {k : Type.{u2}} {G : Type.{u3}} [_inst_1 : Semiring.{u2} k] [_inst_2 : MulOneClass.{u3} G] {R : Type.{u1}} [_inst_3 : Semiring.{u1} R] (f : RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u2, u3} k G _inst_1), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MulZeroOneClass.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R (MulOneClass.toMul.{u3} G _inst_2) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MulZeroOneClass.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) φ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) _inst_3)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f c) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R (MulOneClass.toMul.{u3} G _inst_2) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) φ))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_smul 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 φ :=
@@ -711,7 +711,7 @@ variable {A : Type u₃} [NonUnitalNonAssocSemiring A]
 lean 3 declaration is
   forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Mul.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (forall (x : G), Eq.{succ u3} A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₂ (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
 but is expected to have type
-  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Mul.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (forall (x : G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : MonoidAlgebra.{u1, u2} k G _inst_1) => A) (MonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : MonoidAlgebra.{u1, u2} k G _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ (MonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : MonoidAlgebra.{u1, u2} k G _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₂ (MonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1)))))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
+  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Mul.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (forall (x : G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : MonoidAlgebra.{u1, u2} k G _inst_1) => A) (MonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : MonoidAlgebra.{u1, u2} k G _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ (MonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : MonoidAlgebra.{u1, u2} k G _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₂ (MonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1)))))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.non_unital_alg_hom_ext MonoidAlgebra.nonUnitalAlgHom_extₓ'. -/
 /-- A non_unital `k`-algebra homomorphism from `monoid_algebra k G` is uniquely defined by its
 values on the functions `single a 1`. -/
@@ -831,7 +831,7 @@ def mapDomainRingHom (k : Type _) {H F : Type _} [Semiring k] [Monoid G] [Monoid
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Semiring.{u3} R] {f : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)} {g : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)}, (forall (b : k), Eq.{succ u3} R (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) b)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) b))) -> (forall (a : G), Eq.{succ u3} R (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f g)
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : MulOneClass.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (forall (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b))) -> (forall (a : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1)))))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
+  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : MulOneClass.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (forall (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b))) -> (forall (a : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1)))))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.ring_hom_ext MonoidAlgebra.ringHom_extₓ'. -/
 /-- If two ring homomorphisms from `monoid_algebra k G` are equal on all `single a 1`
 and `single 1 b`, then they are equal. -/
@@ -897,7 +897,7 @@ def singleOneAlgHom {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Mo
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {A : Type.{u3}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u1, u3} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u2} G], Eq.{max (succ u1) (succ (max u3 u2))} (k -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (coeFn.{max (succ u1) (succ (max u3 u2)), max (succ u1) (succ (max u3 u2))} (RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (fun (_x : RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) => k -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (RingHom.hasCoeToFun.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (algebraMap.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u1, succ u3, max (succ u2) (succ u3)} k A (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.single.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G (Monoid.toMulOneClass.{u2} G _inst_4)))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (fun (_x : RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) => k -> A) (RingHom.hasCoeToFun.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (algebraMap.{u1, u3} k A _inst_1 _inst_2 _inst_3)))
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} k] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u3} G], Eq.{max (max (succ u2) (succ u3)) (succ u1)} (forall (ᾰ : k), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) ᾰ) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u2, max (succ u3) (succ u1)} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u2, u3, u1} k G A _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u2, succ u1, max (succ u3) (succ u1)} k A (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.single.{u1, u3} A G _inst_2 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (Monoid.toOne.{u3} G _inst_4)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (algebraMap.{u2, u1} k A _inst_1 _inst_2 _inst_3)))
+  forall {k : Type.{u2}} {G : Type.{u3}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} k] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u3} G], Eq.{max (max (succ u2) (succ u3)) (succ u1)} (forall (ᾰ : k), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) ᾰ) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u2, max (succ u3) (succ u1)} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u2, u3, u1} k G A _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u2, succ u1, max (succ u3) (succ u1)} k A (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.single.{u1, u3} A G _inst_2 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (Monoid.toOne.{u3} G _inst_4)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (algebraMap.{u2, u1} k A _inst_1 _inst_2 _inst_3)))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.coe_algebra_map MonoidAlgebra.coe_algebraMapₓ'. -/
 @[simp]
 theorem coe_algebraMap {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G] :
@@ -909,7 +909,7 @@ theorem coe_algebraMap {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A]
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] (a : G) (b : k), Eq.{max (succ u2) (succ u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) a b) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (instHMul.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (coeFn.{max (succ u1) (succ (max u1 u2)), max (succ u1) (succ (max u1 u2))} (RingHom.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (fun (_x : RingHom.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) => k -> (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1))) (RingHom.hasCoeToFun.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (algebraMap.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) b) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) => G -> (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) a))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] (a : G) (b : k), Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) a b) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) (instHMul.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (RingHom.instRingHomClassRingHom.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (algebraMap.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) b) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) a))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] (a : G) (b : k), Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) a b) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) (instHMul.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (RingHom.instRingHomClassRingHom.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (algebraMap.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) b) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) a))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_eq_algebra_map_mul_of 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 := by simp
@@ -919,7 +919,7 @@ theorem single_eq_algebraMap_mul_of [CommSemiring k] [Monoid G] (a : G) (b : k)
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {A : Type.{u3}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u1, u3} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u2} G] (a : G) (b : k), Eq.{max (succ u2) (succ u3)} (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.single.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2)))) a (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (fun (_x : RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) => k -> A) (RingHom.hasCoeToFun.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (algebraMap.{u1, u3} k A _inst_1 _inst_2 _inst_3) b)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (instHMul.{max u2 u3} (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (MonoidAlgebra.mul.{u3, u2} A G _inst_2 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_4)))) (coeFn.{max (succ u1) (succ (max u3 u2)), max (succ u1) (succ (max u3 u2))} (RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (fun (_x : RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) => k -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (RingHom.hasCoeToFun.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (algebraMap.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_2 _inst_3 _inst_4)) b) (coeFn.{max (succ (max u3 u2)) (succ u2), max (succ u2) (succ (max u3 u2))} (MonoidHom.{u2, max u3 u2} G (MonoidAlgebra.{u3, u2} A G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4))))) (fun (_x : MonoidHom.{u2, max u3 u2} G (MonoidAlgebra.{u3, u2} A G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4))))) => G -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (MonoidHom.hasCoeToFun.{u2, max u3 u2} G (MonoidAlgebra.{u3, u2} A G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4))))) (MonoidAlgebra.of.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4)) a))
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} k] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u3} G] (a : G) (b : k), Eq.{max (succ u3) (succ u1)} (MonoidAlgebra.{u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => A) b) G _inst_2) (MonoidAlgebra.single.{u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => A) b) G _inst_2 a (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (algebraMap.{u2, u1} k A _inst_1 _inst_2 _inst_3) b)) (HMul.hMul.{max u3 u1, max u3 u1, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u3} A G _inst_2) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) (instHMul.{max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) (MonoidAlgebra.mul.{u1, u3} A G _inst_2 (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G _inst_4)))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u2, max (succ u3) (succ u1)} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u2, u3, u1} k G A _inst_1 _inst_2 _inst_3 _inst_4)) b) (FunLike.coe.{max (succ u3) (succ u1), succ u3, max (succ u3) (succ u1)} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max u3 u1, u3, max u3 u1} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (MonoidAlgebra.{u1, u3} A G _inst_2) (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G _inst_4)) (MulOneClass.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, max u3 u1} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4)))) (MonoidHom.monoidHomClass.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))))) (MonoidAlgebra.of.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4)) a))
+  forall {k : Type.{u2}} {G : Type.{u3}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} k] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u3} G] (a : G) (b : k), Eq.{max (succ u3) (succ u1)} (MonoidAlgebra.{u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => A) b) G _inst_2) (MonoidAlgebra.single.{u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => A) b) G _inst_2 a (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (algebraMap.{u2, u1} k A _inst_1 _inst_2 _inst_3) b)) (HMul.hMul.{max u3 u1, max u3 u1, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u3} A G _inst_2) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) (instHMul.{max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) (MonoidAlgebra.mul.{u1, u3} A G _inst_2 (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G _inst_4)))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u2, max (succ u3) (succ u1)} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u2, u3, u1} k G A _inst_1 _inst_2 _inst_3 _inst_4)) b) (FunLike.coe.{max (succ u3) (succ u1), succ u3, max (succ u3) (succ u1)} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max u3 u1, u3, max u3 u1} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (MonoidAlgebra.{u1, u3} A G _inst_2) (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G _inst_4)) (MulOneClass.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, max u3 u1} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4)))) (MonoidHom.monoidHomClass.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))))) (MonoidAlgebra.of.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4)) a))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_algebra_map_eq_algebra_map_mul_of 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) :
@@ -930,7 +930,7 @@ theorem single_algebraMap_eq_algebraMap_mul_of {A : Type _} [CommSemiring k] [Se
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] {p : (MonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : MonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) => G -> (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) g)) -> (forall (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Finsupp.add.{u2, u1} G k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) f g))) -> (forall (r : k) (f : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (SMul.smul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) r f))) -> (p f)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] {p : (MonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : MonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) g)) -> (forall (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r f))) -> (p f)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] {p : (MonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : MonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) g)) -> (forall (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r f))) -> (p f)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.induction_on 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))
@@ -954,7 +954,7 @@ variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [A
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : G), Commute.{u4} B (Distrib.toHasMul.{u4} B (NonUnitalNonAssocSemiring.toDistrib.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (fun (_x : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) => A -> B) ([anonymous].{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) f x) (coeFn.{max (succ u4) (succ u2), max (succ u2) (succ u4)} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (fun (_x : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) => G -> B) (MonoidHom.hasCoeToFun.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) g y)) -> (AlgHom.{u1, max u3 u2, u4} k (MonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (MonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (MonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_alg_hom MonoidAlgebra.liftNCAlgHomₓ'. -/
 /-- `lift_nc_ring_hom` as a `alg_hom`, for when `f` is an `alg_hom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
@@ -1033,7 +1033,7 @@ theorem lift_def (F : G →* A) : ⇑(lift k G A F) = liftNC ((algebraMap k A :
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : G), Eq.{succ u3} A (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) => G -> A) (MonoidHom.hasCoeToFun.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ u3) (succ u2)) (max (succ u3) (succ u2)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ u3) (succ u2)} (Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) => (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) -> (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u3) (succ u2), max (succ (max u1 u2)) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) -> A) ([anonymous].{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) F (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) x (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))))))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_symm_apply MonoidAlgebra.lift_symm_applyₓ'. -/
 @[simp]
 theorem lift_symm_apply (F : MonoidAlgebra k G →ₐ[k] A) (x : G) :
@@ -1092,7 +1092,7 @@ def mapDomainNonUnitalAlgHom (k A : Type _) [CommSemiring k] [Semiring A] [Algeb
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_2 : Monoid.{u1} G] (k : Type.{u2}) (A : Type.{u3}) {H : Type.{u4}} {F : Type.{u5}} [_inst_7 : CommSemiring.{u2} k] [_inst_8 : Semiring.{u3} A] [_inst_9 : Algebra.{u2, u3} k A _inst_7 _inst_8] [_inst_10 : Monoid.{u4} H] [_inst_11 : MonoidHomClass.{u5, u1, u4} F G H (Monoid.toMulOneClass.{u1} G _inst_2) (Monoid.toMulOneClass.{u4} H _inst_10)] (f : F) (r : k), Eq.{max (succ u4) (succ u3)} (Finsupp.{u4, u3} H A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_8))))))) (Finsupp.mapDomain.{u1, u4, u3} G H A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_8))) (coeFn.{succ u5, max (succ u1) (succ u4)} F (fun (_x : F) => G -> H) (FunLike.hasCoeToFun.{succ u5, succ u1, succ u4} F G (fun (_x : G) => H) (MulHomClass.toFunLike.{u5, u1, u4} F G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G _inst_2)) (MulOneClass.toHasMul.{u4} H (Monoid.toMulOneClass.{u4} H _inst_10)) (MonoidHomClass.toMulHomClass.{u5, u1, u4} F G H (Monoid.toMulOneClass.{u1} G _inst_2) (Monoid.toMulOneClass.{u4} H _inst_10) _inst_11))) f) (coeFn.{max (succ u2) (succ (max u3 u1)), max (succ u2) (succ (max u3 u1))} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u3, u1} A G _inst_8) (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2))) (fun (_x : RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u3, u1} A G _inst_8) (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2))) => k -> (MonoidAlgebra.{u3, u1} A G _inst_8)) (RingHom.hasCoeToFun.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u3, u1} A G _inst_8) (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2) (MonoidAlgebra.algebra.{u2, u1, u3} k G A _inst_7 _inst_8 _inst_9 _inst_2)) r)) (coeFn.{max (succ u2) (succ (max u3 u4)), max (succ u2) (succ (max u3 u4))} (RingHom.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u4} (MonoidAlgebra.{u3, u4} A H _inst_8) (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10))) (fun (_x : RingHom.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u4} (MonoidAlgebra.{u3, u4} A H _inst_8) (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10))) => k -> (MonoidAlgebra.{u3, u4} A H _inst_8)) (RingHom.hasCoeToFun.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u4} (MonoidAlgebra.{u3, u4} A H _inst_8) (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10))) (algebraMap.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10) (MonoidAlgebra.algebra.{u2, u4, u3} k H A _inst_7 _inst_8 _inst_9 _inst_10)) r)
 but is expected to have type
-  forall {G : Type.{u5}} [_inst_2 : Monoid.{u5} G] (k : Type.{u4}) (A : Type.{u3}) {H : Type.{u2}} {F : Type.{u1}} [_inst_7 : CommSemiring.{u4} k] [_inst_8 : Semiring.{u3} A] [_inst_9 : Algebra.{u4, u3} k A _inst_7 _inst_8] [_inst_10 : Monoid.{u2} H] [_inst_11 : MonoidHomClass.{u1, u5, u2} F G H (Monoid.toMulOneClass.{u5} G _inst_2) (Monoid.toMulOneClass.{u2} H _inst_10)] (f : F) (r : k), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.mapDomain.{u3, u5, u2} A G _inst_8 H (FunLike.coe.{succ u1, succ u5, succ u2} F G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{u1, u5, u2} F G H (MulOneClass.toMul.{u5} G (Monoid.toMulOneClass.{u5} G _inst_2)) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H _inst_10)) (MonoidHomClass.toMulHomClass.{u1, u5, u2} F G H (Monoid.toMulOneClass.{u5} G _inst_2) (Monoid.toMulOneClass.{u2} H _inst_10) _inst_11)) f) (FunLike.coe.{max (max (succ u5) (succ u4)) (succ u3), succ u4, max (succ u5) (succ u3)} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u3, u5} A G _inst_8) _x) (MulHomClass.toFunLike.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)))) (NonUnitalNonAssocSemiring.toMul.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)) (RingHom.instRingHomClassRingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)))))) (algebraMap.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2) (MonoidAlgebra.algebra.{u4, u5, u3} k G A _inst_7 _inst_8 _inst_9 _inst_2)) r)) (FunLike.coe.{max (max (succ u4) (succ u3)) (succ u2), succ u4, max (succ u3) (succ u2)} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u3, u2} A H _inst_8) _x) (MulHomClass.toFunLike.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)) (RingHom.instRingHomClassRingHom.{u4, max u3 u2} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)))))) (algebraMap.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10) (MonoidAlgebra.algebra.{u4, u2, u3} k H A _inst_7 _inst_8 _inst_9 _inst_10)) r)
+  forall {G : Type.{u5}} [_inst_2 : Monoid.{u5} G] (k : Type.{u4}) (A : Type.{u3}) {H : Type.{u2}} {F : Type.{u1}} [_inst_7 : CommSemiring.{u4} k] [_inst_8 : Semiring.{u3} A] [_inst_9 : Algebra.{u4, u3} k A _inst_7 _inst_8] [_inst_10 : Monoid.{u2} H] [_inst_11 : MonoidHomClass.{u1, u5, u2} F G H (Monoid.toMulOneClass.{u5} G _inst_2) (Monoid.toMulOneClass.{u2} H _inst_10)] (f : F) (r : k), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.mapDomain.{u3, u5, u2} A G _inst_8 H (FunLike.coe.{succ u1, succ u5, succ u2} F G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{u1, u5, u2} F G H (MulOneClass.toMul.{u5} G (Monoid.toMulOneClass.{u5} G _inst_2)) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H _inst_10)) (MonoidHomClass.toMulHomClass.{u1, u5, u2} F G H (Monoid.toMulOneClass.{u5} G _inst_2) (Monoid.toMulOneClass.{u2} H _inst_10) _inst_11)) f) (FunLike.coe.{max (max (succ u5) (succ u4)) (succ u3), succ u4, max (succ u5) (succ u3)} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u3, u5} A G _inst_8) _x) (MulHomClass.toFunLike.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)))) (NonUnitalNonAssocSemiring.toMul.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)) (RingHom.instRingHomClassRingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)))))) (algebraMap.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2) (MonoidAlgebra.algebra.{u4, u5, u3} k G A _inst_7 _inst_8 _inst_9 _inst_2)) r)) (FunLike.coe.{max (max (succ u4) (succ u3)) (succ u2), succ u4, max (succ u3) (succ u2)} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => MonoidAlgebra.{u3, u2} A H _inst_8) _x) (MulHomClass.toFunLike.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)) (RingHom.instRingHomClassRingHom.{u4, max u3 u2} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)))))) (algebraMap.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10) (MonoidAlgebra.algebra.{u4, u2, u3} k H A _inst_7 _inst_8 _inst_9 _inst_10)) r)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.map_domain_algebra_map MonoidAlgebra.mapDomain_algebraMapₓ'. -/
 theorem mapDomain_algebraMap (k A : Type _) {H F : Type _} [CommSemiring k] [Semiring A]
     [Algebra k A] [Monoid H] [MonoidHomClass F G H] (f : F) (r : k) :
@@ -1133,7 +1133,7 @@ def GroupSmul.linearMap [Monoid G] [CommSemiring k] (V : Type u₃) [AddCommMono
 lean 3 declaration is
   forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] (V : Type.{u3}) [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_2) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} k V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} k V (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] (g : G) (v : V), Eq.{succ u3} V (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V V _inst_3 _inst_3 _inst_4 _inst_4) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V V _inst_3 _inst_3 _inst_4 _inst_4) => V -> V) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V V (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_3 _inst_4 _inst_4 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) (MonoidAlgebra.GroupSmul.linearMap.{u1, u2, u3} k G _inst_1 _inst_2 V _inst_3 _inst_4 _inst_5 _inst_6 g) v) (SMul.smul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (SMulZeroClass.toHasSmul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MulZeroClass.toHasZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) g (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))))))) v)
 but is expected to have type
-  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] (V : Type.{u3}) [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] (g : G) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => V) v) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V V _inst_3 _inst_3 _inst_4 _inst_4) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => V) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V V (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_3 _inst_4 _inst_4 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) (MonoidAlgebra.GroupSmul.linearMap.{u1, u2, u3} k G _inst_1 _inst_2 V _inst_3 _inst_4 _inst_5 _inst_6 g) v) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)
+  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] (V : Type.{u3}) [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] (g : G) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => V) v) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V V _inst_3 _inst_3 _inst_4 _inst_4) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => V) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V V (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_3 _inst_4 _inst_4 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) (MonoidAlgebra.GroupSmul.linearMap.{u1, u2, u3} k G _inst_1 _inst_2 V _inst_3 _inst_4 _inst_5 _inst_6 g) v) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.group_smul.linear_map_apply MonoidAlgebra.GroupSmul.linearMap_applyₓ'. -/
 @[simp]
 theorem GroupSmul.linearMap_apply [Monoid G] [CommSemiring k] (V : Type u₃) [AddCommMonoid V]
@@ -1158,7 +1158,7 @@ include h
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] {V : Type.{u3}} {W : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_2) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} k V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} k V (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u3} W] [_inst_8 : Module.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7] [_inst_9 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_2) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toHasSmul.{u1, u3} k W (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (SMulWithZero.toSmulZeroClass.{u1, u3} k W (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (MulActionWithZero.toSMulWithZero.{u1, u3} k W (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (Module.toMulActionWithZero.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8), (forall (g : G) (v : V), Eq.{succ u3} W (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f (SMul.smul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (SMulZeroClass.toHasSmul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MulZeroClass.toHasZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) g (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))))))) v)) (SMul.smul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (SMulZeroClass.toHasSmul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (MulZeroClass.toHasZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (Module.toMulActionWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) g (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))))))) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v))) -> (LinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (RingHom.id.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] {V : Type.{u3}} {W : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u3} W] [_inst_8 : Module.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7] [_inst_9 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u1, u3} k W (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u1, u3} k W (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u1, u3} k W (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (Module.toMulActionWithZero.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8), (forall (g : G) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v))) -> (LinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (RingHom.id.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] {V : Type.{u3}} {W : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u3} W] [_inst_8 : Module.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7] [_inst_9 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u1, u3} k W (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u1, u3} k W (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u1, u3} k W (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (Module.toMulActionWithZero.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8), (forall (g : G) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v))) -> (LinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (RingHom.id.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.equivariant_of_linear_of_comm MonoidAlgebra.equivariantOfLinearOfCommₓ'. -/
 /-- Build a `k[G]`-linear map from a `k`-linear map and evidence that it is `G`-equivariant. -/
 def equivariantOfLinearOfComm : V →ₗ[MonoidAlgebra k G] W
@@ -1180,7 +1180,7 @@ def equivariantOfLinearOfComm : V →ₗ[MonoidAlgebra k G] W
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] {V : Type.{u3}} {W : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_2) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} k V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} k V (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u3} W] [_inst_8 : Module.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7] [_inst_9 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_2) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toHasSmul.{u1, u3} k W (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (SMulWithZero.toSmulZeroClass.{u1, u3} k W (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (MulActionWithZero.toSMulWithZero.{u1, u3} k W (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (Module.toMulActionWithZero.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (h : forall (g : G) (v : V), Eq.{succ u3} W (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f (SMul.smul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (SMulZeroClass.toHasSmul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MulZeroClass.toHasZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) g (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))))))) v)) (SMul.smul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (SMulZeroClass.toHasSmul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (MulZeroClass.toHasZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (Module.toMulActionWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) g (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))))))) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v))) (v : V), Eq.{succ u3} W (coeFn.{succ u3, succ u3} (LinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (RingHom.id.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) (fun (_x : LinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (RingHom.id.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) => V -> W) (LinearMap.hasCoeToFun.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_7 _inst_5 _inst_9 (RingHom.id.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)))) (MonoidAlgebra.equivariantOfLinearOfComm.{u1, u2, u3} k G _inst_1 _inst_2 V W _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 f h) v) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] {V : Type.{u3}} {W : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u3} W] [_inst_8 : Module.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7] [_inst_9 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u1, u3} k W (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u1, u3} k W (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u1, u3} k W (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (Module.toMulActionWithZero.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (h : forall (g : G) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v))) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (RingHom.id.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_7 _inst_5 _inst_9 (RingHom.id.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1)))) (MonoidAlgebra.equivariantOfLinearOfComm.{u1, u2, u3} k G _inst_1 _inst_2 V W _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 f h) v) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] {V : Type.{u3}} {W : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u3} W] [_inst_8 : Module.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7] [_inst_9 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u1, u3} k W (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u1, u3} k W (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u1, u3} k W (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (Module.toMulActionWithZero.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (h : forall (g : G) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v))) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) v) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (RingHom.id.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_7 _inst_5 _inst_9 (RingHom.id.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1)))) (MonoidAlgebra.equivariantOfLinearOfComm.{u1, u2, u3} k G _inst_1 _inst_2 V W _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 f h) v) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.equivariant_of_linear_of_comm_apply MonoidAlgebra.equivariantOfLinearOfComm_applyₓ'. -/
 @[simp]
 theorem equivariantOfLinearOfComm_apply (v : V) : (equivariantOfLinearOfComm f h) v = f v :=
@@ -1336,7 +1336,7 @@ variable [Module k V] [Module (MonoidAlgebra k G) V] [IsScalarTower k (MonoidAlg
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {V : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3] [_inst_5 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3] [_inst_6 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_1))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_1) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} k V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} k V (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4))))] (W : Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4), (forall (g : G) (v : V), (Membership.Mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) v W) -> (Membership.Mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) (SMul.smul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) => G -> (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) g) v) W)) -> (Submodule.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {V : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4))))] (W : Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4), (forall (g : G) (v : V), (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.instSetLikeSubmodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) v W) -> (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.instSetLikeSubmodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) (HSMul.hSMul.{max u1 u2, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V V (instHSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (SMulZeroClass.toSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidWithZero.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5))))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) g) v) W)) -> (Submodule.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {V : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4))))] (W : Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4), (forall (g : G) (v : V), (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.instSetLikeSubmodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) v W) -> (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.instSetLikeSubmodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) (HSMul.hSMul.{max u1 u2, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V V (instHSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (SMulZeroClass.toSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidWithZero.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5))))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) g) v) W)) -> (Submodule.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.submodule_of_smul_mem MonoidAlgebra.submoduleOfSmulMemₓ'. -/
 /-- A submodule over `k` which is stable under scalar multiplication by elements of `G` is a
 submodule over `monoid_algebra k G`  -/
@@ -1406,7 +1406,7 @@ def liftNC (f : k →+ R) (g : Multiplicative G → R) : AddMonoidAlgebra k G 
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : NonUnitalNonAssocSemiring.{u3} R] (f : AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (g : (Multiplicative.{u2} G) -> R) (a : G) (b : k), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 _inst_2 f g) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a b)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R _inst_2))) (coeFn.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (fun (_x : AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) => k -> R) (AddMonoidHom.hasCoeToFun.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) f b) (g (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (fun (_x : Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) => G -> (Multiplicative.{u2} G)) (Equiv.hasCoeToFun.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) a)))
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : NonUnitalNonAssocSemiring.{u1} R] (f : AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (g : (Multiplicative.{u3} G) -> R) (a : G) (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 _inst_2 f g) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) b) R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) b) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) b) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) b) _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddZeroClass.toAdd.{u2} k (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) f b) (g (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} G (Multiplicative.{u3} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : G) => Multiplicative.{u3} G) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} G (Multiplicative.{u3} G)) (Multiplicative.ofAdd.{u3} G) a)))
+  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : NonUnitalNonAssocSemiring.{u1} R] (f : AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (g : (Multiplicative.{u3} G) -> R) (a : G) (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 _inst_2 f g) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) b) _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : k) => R) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddZeroClass.toAdd.{u2} k (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) f b) (g (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} G (Multiplicative.{u3} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : G) => Multiplicative.{u3} G) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} G (Multiplicative.{u3} G)) (Multiplicative.ofAdd.{u3} G) a)))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_single AddMonoidAlgebra.liftNC_singleₓ'. -/
 @[simp]
 theorem liftNC_single (f : k →+ R) (g : Multiplicative G → R) (a : G) (b : k) :
@@ -1470,7 +1470,7 @@ variable [Semiring R]
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] [_inst_3 : Semiring.{u3} R] {g_hom : Type.{u4}} [_inst_4 : MulHomClass.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : g_hom) (a : AddMonoidAlgebra.{u1, u2} k G _inst_1) (b : AddMonoidAlgebra.{u1, u2} k G _inst_1), (forall {x : G} {y : G}, (Membership.Mem.{u2, u2} G (Finset.{u2} G) (Finset.hasMem.{u2} G) y (Finsupp.support.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a)) -> (Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) b x)) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (fun (_x : Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) => G -> (Multiplicative.{u2} G)) (Equiv.hasCoeToFun.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) y)))) -> (Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) a) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) b)))
 but is expected to have type
-  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Add.{u4} G] [_inst_3 : Semiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : MulHomClass.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : g_hom) (a : AddMonoidAlgebra.{u3, u4} k G _inst_1) (b : AddMonoidAlgebra.{u3, u4} k G _inst_1), (forall {x : G} {y : G}, (Membership.mem.{u4, u4} G (Finset.{u4} G) (Finset.instMembershipFinset.{u4} G) y (Finsupp.support.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1)) a)) -> (Commute.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) _inst_3))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u3} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g (FunLike.coe.{succ u4, succ u4, succ u4} (Equiv.{succ u4, succ u4} G (Multiplicative.{u4} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : G) => Multiplicative.{u4} G) _x) (Equiv.instFunLikeEquiv.{succ u4, succ u4} G (Multiplicative.{u4} G)) (Multiplicative.ofAdd.{u4} G) y)))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.hasMul.{u3, u4} k G _inst_1 _inst_2)) a b)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.hasMul.{u3, u4} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) a) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) b)))
+  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Add.{u4} G] [_inst_3 : Semiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : MulHomClass.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : g_hom) (a : AddMonoidAlgebra.{u3, u4} k G _inst_1) (b : AddMonoidAlgebra.{u3, u4} k G _inst_1), (forall {x : G} {y : G}, (Membership.mem.{u4, u4} G (Finset.{u4} G) (Finset.instMembershipFinset.{u4} G) y (Finsupp.support.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1)) a)) -> (Commute.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) _inst_3))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u3} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g (FunLike.coe.{succ u4, succ u4, succ u4} (Equiv.{succ u4, succ u4} G (Multiplicative.{u4} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : G) => Multiplicative.{u4} G) _x) (Equiv.instFunLikeEquiv.{succ u4, succ u4} G (Multiplicative.{u4} G)) (Multiplicative.ofAdd.{u4} G) y)))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.hasMul.{u3, u4} k G _inst_1 _inst_2)) a b)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.hasMul.{u3, u4} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) a) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) b)))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_mul AddMonoidAlgebra.liftNC_mulₓ'. -/
 theorem liftNC_mul {g_hom : Type _} [MulHomClass g_hom (Multiplicative G) R] (f : k →+* R)
     (g : g_hom) (a b : AddMonoidAlgebra k G)
@@ -1504,7 +1504,7 @@ theorem one_def : (1 : AddMonoidAlgebra k G) = single 0 1 :=
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Zero.{u2} G] [_inst_3 : NonAssocSemiring.{u3} R] {g_hom : Type.{u4}} [_inst_4 : OneHomClass.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasOne.{u2} G _inst_2) (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3)))] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (g : g_hom), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_3))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_3))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_3))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_3) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3)))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3 (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (OneHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasOne.{u2} G _inst_2) (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))) _inst_4)) g)) (OfNat.ofNat.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) 1 (OfNat.mk.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) 1 (One.one.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.one.{u1, u2} k G _inst_1 _inst_2))))) (OfNat.ofNat.{u3} R 1 (OfNat.mk.{u3} R 1 (One.one.{u3} R (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))))))
 but is expected to have type
-  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Zero.{u4} G] [_inst_3 : NonAssocSemiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : OneHomClass.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (instOneMultiplicative.{u4} G _inst_2) (NonAssocSemiring.toOne.{u1} R _inst_3)] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3) (g : g_hom), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R _inst_3)))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3 (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3)) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1254 : Multiplicative.{u4} G) => R) _x) (OneHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (instOneMultiplicative.{u4} G _inst_2) (NonAssocSemiring.toOne.{u1} R _inst_3) _inst_4) g)) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) 1 (One.toOfNat1.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) (NonAssocSemiring.toOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) _inst_3)))
+  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Zero.{u4} G] [_inst_3 : NonAssocSemiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : OneHomClass.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (instOneMultiplicative.{u4} G _inst_2) (NonAssocSemiring.toOne.{u1} R _inst_3)] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3) (g : g_hom), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R _inst_3)))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3 (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3)) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1262 : Multiplicative.{u4} G) => R) _x) (OneHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (instOneMultiplicative.{u4} G _inst_2) (NonAssocSemiring.toOne.{u1} R _inst_3) _inst_4) g)) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) 1 (One.toOfNat1.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) (NonAssocSemiring.toOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) _inst_3)))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_one AddMonoidAlgebra.liftNC_oneₓ'. -/
 @[simp]
 theorem liftNC_one {g_hom : Type _} [OneHomClass g_hom (Multiplicative G) R] (f : k →+* R)
@@ -1589,7 +1589,7 @@ variable [Semiring R]
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : Multiplicative.{u2} G), Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f x) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => (Multiplicative.{u2} G) -> R) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g y)) -> (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : Multiplicative.{u2} G), Commute.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) x) (NonUnitalNonAssocSemiring.toMul.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) x) (Semiring.toNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) x) _inst_3))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.instRingHomClassRingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) f x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u2} G) => R) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) R (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g y)) -> (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : Multiplicative.{u2} G), Commute.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) x) (NonUnitalNonAssocSemiring.toMul.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) x) (Semiring.toNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) x) _inst_3))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.instRingHomClassRingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) f x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u2} G) => R) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) R (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g y)) -> (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_ring_hom AddMonoidAlgebra.liftNCRingHomₓ'. -/
 /-- `lift_nc` as a `ring_hom`, for when `f` and `g` commute -/
 def liftNCRingHom (f : k →+* R) (g : Multiplicative G →* R) (h_comm : ∀ x y, Commute (f x) (g y)) :
@@ -1760,7 +1760,7 @@ theorem mapDomain_one {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β]
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {α₂ : Type.{u3}} [_inst_2 : Semiring.{u2} β] [_inst_3 : Add.{u1} α] [_inst_4 : Add.{u3} α₂] {F : Type.{u4}} [_inst_5 : AddHomClass.{u4, u1, u3} F α α₂ _inst_3 _inst_4] (f : F) (x : AddMonoidAlgebra.{u2, u1} β α _inst_2) (y : AddMonoidAlgebra.{u2, u1} β α _inst_2), Eq.{max (succ u3) (succ u2)} (Finsupp.{u3, u2} α₂ β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))))))) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (AddHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u2, u1} β α _inst_2) (AddMonoidAlgebra.{u2, u1} β α _inst_2) (AddMonoidAlgebra.{u2, u1} β α _inst_2) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u2, u1} β α _inst_2) (AddMonoidAlgebra.hasMul.{u2, u1} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u3 u2, max u3 u2, max u3 u2} (AddMonoidAlgebra.{u2, u3} β α₂ _inst_2) (AddMonoidAlgebra.{u2, u3} β α₂ _inst_2) (AddMonoidAlgebra.{u2, u3} β α₂ _inst_2) (instHMul.{max u3 u2} (AddMonoidAlgebra.{u2, u3} β α₂ _inst_2) (AddMonoidAlgebra.hasMul.{u2, u3} β α₂ _inst_2 _inst_4)) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (AddHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) x) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (AddHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) y))
 but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : Add.{u4} α] [_inst_4 : Add.{u2} α₂] {F : Type.{u1}} [_inst_5 : AddHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F) (x : AddMonoidAlgebra.{u3, u4} β α _inst_2) (y : AddMonoidAlgebra.{u3, u4} β α _inst_2), Eq.{max (succ u3) (succ u2)} (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α₂) _x) (AddHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (HMul.hMul.{max u4 u3, max u4 u3, max u4 u3} (AddMonoidAlgebra.{u3, u4} β α _inst_2) (AddMonoidAlgebra.{u3, u4} β α _inst_2) (AddMonoidAlgebra.{u3, u4} β α _inst_2) (instHMul.{max u4 u3} (AddMonoidAlgebra.{u3, u4} β α _inst_2) (AddMonoidAlgebra.hasMul.{u3, u4} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u3 u2, max u3 u2, max u3 u2} (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (instHMul.{max u3 u2} (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.hasMul.{u3, u2} β α₂ _inst_2 _inst_4)) (AddMonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α₂) _x) (AddHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) x) (AddMonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α₂) _x) (AddHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) y))
+  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : Add.{u4} α] [_inst_4 : Add.{u2} α₂] {F : Type.{u1}} [_inst_5 : AddHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F) (x : AddMonoidAlgebra.{u3, u4} β α _inst_2) (y : AddMonoidAlgebra.{u3, u4} β α _inst_2), Eq.{max (succ u3) (succ u2)} (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α₂) _x) (AddHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (HMul.hMul.{max u4 u3, max u4 u3, max u4 u3} (AddMonoidAlgebra.{u3, u4} β α _inst_2) (AddMonoidAlgebra.{u3, u4} β α _inst_2) (AddMonoidAlgebra.{u3, u4} β α _inst_2) (instHMul.{max u4 u3} (AddMonoidAlgebra.{u3, u4} β α _inst_2) (AddMonoidAlgebra.hasMul.{u3, u4} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u3 u2, max u3 u2, max u3 u2} (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (instHMul.{max u3 u2} (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.hasMul.{u3, u2} β α₂ _inst_2 _inst_4)) (AddMonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α₂) _x) (AddHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) x) (AddMonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α₂) _x) (AddHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) y))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.map_domain_mul AddMonoidAlgebra.mapDomain_mulₓ'. -/
 /-- Like `finsupp.map_domain_add`, but for the convolutive multiplication we define in this file -/
 theorem mapDomain_mul {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [Add α] [Add α₂]
@@ -1819,7 +1819,7 @@ end
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : Multiplicative.{u2} G), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (fun (_x : Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) => (Multiplicative.{u2} G) -> G) (Equiv.hasCoeToFun.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) a) (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : Multiplicative.{u2} G), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a) (AddMonoidAlgebra.single.{u1, u2} k ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Multiplicative.{u2} G) => G) a) _inst_1 (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Multiplicative.{u2} G) => G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) a) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : Multiplicative.{u2} G), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a) (AddMonoidAlgebra.single.{u1, u2} k ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Multiplicative.{u2} G) => G) a) _inst_1 (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Multiplicative.{u2} G) => G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) a) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of_apply AddMonoidAlgebra.of_applyₓ'. -/
 @[simp]
 theorem of_apply [AddZeroClass G] (a : Multiplicative G) : of k G a = single a.toAdd 1 :=
@@ -1841,7 +1841,7 @@ theorem of'_apply (a : G) : of' k G a = single a 1 :=
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : G), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.of'.{u1, u2} k G _inst_1 a) (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : G), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.of'.{u1, u2} k G _inst_1 a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : G), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.of'.{u1, u2} k G _inst_1 a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of'_eq_of AddMonoidAlgebra.of'_eq_ofₓ'. -/
 theorem of'_eq_of [AddZeroClass G] (a : G) : of' k G a = of k G a :=
   rfl
@@ -1851,7 +1851,7 @@ theorem of'_eq_of [AddZeroClass G] (a : G) : of' k G a = of k G a :=
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Nontrivial.{u1} k] [_inst_3 : AddZeroClass.{u2} G], Function.Injective.{succ u2, max (succ u2) (succ u1)} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_3))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Nontrivial.{u1} k] [_inst_3 : AddZeroClass.{u2} G], Function.Injective.{succ u2, max (succ u1) (succ u2)} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_3)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_3))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Nontrivial.{u1} k] [_inst_3 : AddZeroClass.{u2} G], Function.Injective.{succ u2, max (succ u1) (succ u2)} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_3)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_3))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of_injective AddMonoidAlgebra.of_injectiveₓ'. -/
 theorem of_injective [Nontrivial k] [AddZeroClass G] : Function.Injective (of k G) := fun a b h =>
   by simpa using (single_eq_single_iff _ _ _ _).mp h
@@ -1946,7 +1946,7 @@ theorem single_mul_apply [AddGroup G] (r : k) (x : G) (f : AddMonoidAlgebra k G)
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] {R : Type.{u3}} [_inst_2 : AddZeroClass.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u1, u2} k G _inst_1), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => (Multiplicative.{u2} G) -> R) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) (SMul.smul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) c φ)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f c) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => (Multiplicative.{u2} G) -> R) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) φ))
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} [_inst_1 : Semiring.{u2} k] {R : Type.{u1}} [_inst_2 : AddZeroClass.{u3} G] [_inst_3 : Semiring.{u1} R] (f : RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u2, u3} k G _inst_1), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) (fun (_x : Multiplicative.{u3} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u3} G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (MulOneClass.toMul.{u3} (Multiplicative.{u3} G) (Multiplicative.mulOneClass.{u3} G _inst_2)) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) φ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) _inst_3)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f c) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) (fun (_x : Multiplicative.{u3} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u3} G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (MulOneClass.toMul.{u3} (Multiplicative.{u3} G) (Multiplicative.mulOneClass.{u3} G _inst_2)) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) φ))
+  forall {k : Type.{u2}} {G : Type.{u3}} [_inst_1 : Semiring.{u2} k] {R : Type.{u1}} [_inst_2 : AddZeroClass.{u3} G] [_inst_3 : Semiring.{u1} R] (f : RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u2, u3} k G _inst_1), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) (fun (_x : Multiplicative.{u3} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u3} G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (MulOneClass.toMul.{u3} (Multiplicative.{u3} G) (Multiplicative.mulOneClass.{u3} G _inst_2)) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) φ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) c) _inst_3)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => R) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f c) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) (fun (_x : Multiplicative.{u3} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u3} G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (MulOneClass.toMul.{u3} (Multiplicative.{u3} G) (Multiplicative.mulOneClass.{u3} G _inst_2)) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) φ))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_smul AddMonoidAlgebra.liftNC_smulₓ'. -/
 theorem liftNC_smul {R : Type _} [AddZeroClass G] [Semiring R] (f : k →+* R)
     (g : Multiplicative G →* R) (c : k) (φ : MonoidAlgebra k G) :
@@ -1958,7 +1958,7 @@ theorem liftNC_smul {R : Type _} [AddZeroClass G] [Semiring R] (f : k →+* R)
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {p : (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (fun (_x : Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) => G -> (Multiplicative.{u2} G)) (Equiv.hasCoeToFun.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) g))) -> (forall (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toHasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (SMul.smul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) r f))) -> (p f)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {p : (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : G) => Multiplicative.{u2} G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) g))) -> (forall (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r f))) -> (p f)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {p : (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : G) => Multiplicative.{u2} G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) g))) -> (forall (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r f))) -> (p f)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.induction_on AddMonoidAlgebra.induction_onₓ'. -/
 theorem induction_on [AddMonoid G] {p : AddMonoidAlgebra k G → Prop} (f : AddMonoidAlgebra k G)
     (hM : ∀ g, p (of k G (Multiplicative.ofAdd g)))
@@ -2091,7 +2091,7 @@ variable {A : Type u₃} [NonUnitalNonAssocSemiring A]
 lean 3 declaration is
   forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Add.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (forall (x : G), Eq.{succ u3} A (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (fun (_x : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))) (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (fun (_x : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₂ (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))))) -> (Eq.{max (succ (max u2 u1)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
 but is expected to have type
-  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Add.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (forall (x : G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : AddMonoidAlgebra.{u1, u2} k G _inst_1) => A) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : AddMonoidAlgebra.{u1, u2} k G _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : AddMonoidAlgebra.{u1, u2} k G _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₂ (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1)))))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
+  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Add.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (forall (x : G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : AddMonoidAlgebra.{u1, u2} k G _inst_1) => A) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : AddMonoidAlgebra.{u1, u2} k G _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : AddMonoidAlgebra.{u1, u2} k G _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₂ (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1)))))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.non_unital_alg_hom_ext AddMonoidAlgebra.nonUnitalAlgHom_extₓ'. -/
 /-- A non_unital `k`-algebra homomorphism from `add_monoid_algebra k G` is uniquely defined by its
 values on the functions `single a 1`. -/
@@ -2159,7 +2159,7 @@ def singleZeroRingHom [Semiring k] [AddMonoid G] : k →+* AddMonoidAlgebra k G
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] {f : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)} {g : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)}, (forall (b : k), Eq.{succ u3} R (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) b)) (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) b))) -> (forall (a : G), Eq.{succ u3} R (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))) (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))))) -> (Eq.{max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f g)
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : AddMonoid.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (forall (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b))) -> (forall (a : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1)))))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
+  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : AddMonoid.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (forall (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b))) -> (forall (a : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1)))))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.ring_hom_ext AddMonoidAlgebra.ringHom_extₓ'. -/
 /-- If two ring homomorphisms from `add_monoid_algebra k G` are equal on all `single a 1`
 and `single 0 b`, then they are equal. -/
@@ -2271,7 +2271,7 @@ def singleZeroAlgHom [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : CommSemiring.{u3} R] [_inst_2 : Semiring.{u1} k] [_inst_3 : Algebra.{u3, u1} R k _inst_1 _inst_2] [_inst_4 : AddMonoid.{u2} G], Eq.{max (succ u3) (succ u2) (succ u1)} ((fun (_x : RingHom.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) => R -> (AddMonoidAlgebra.{u1, u2} k G _inst_2)) (algebraMap.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u1, u2, u3} k G R _inst_1 _inst_2 _inst_3 _inst_4))) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ u3) (succ (max u2 u1))} (RingHom.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) (fun (_x : RingHom.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) => R -> (AddMonoidAlgebra.{u1, u2} k G _inst_2)) (RingHom.hasCoeToFun.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) (algebraMap.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u1, u2, u3} k G R _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u3, succ u1, max (succ u2) (succ u1)} R k (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_4)))))) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} R k (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} k _inst_2)) (fun (_x : RingHom.{u3, u1} R k (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} k _inst_2)) => R -> k) (RingHom.hasCoeToFun.{u3, u1} R k (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} k _inst_2)) (algebraMap.{u3, u1} R k _inst_1 _inst_2 _inst_3)))
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Semiring.{u2} k] [_inst_3 : Algebra.{u1, u2} R k _inst_1 _inst_2] [_inst_4 : AddMonoid.{u3} G], Eq.{max (max (succ u2) (succ u3)) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => AddMonoidAlgebra.{u2, u3} k G _inst_2) a) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u1, max (succ u2) (succ u3)} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => AddMonoidAlgebra.{u2, u3} k G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u1, max u2 u3} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)))))) (algebraMap.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u2, u3, u1} k G R _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u1, succ u2, max (succ u3) (succ u2)} R k (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.single.{u2, u3} k G _inst_2 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_4)))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => k) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2))))) (algebraMap.{u1, u2} R k _inst_1 _inst_2 _inst_3)))
+  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Semiring.{u2} k] [_inst_3 : Algebra.{u1, u2} R k _inst_1 _inst_2] [_inst_4 : AddMonoid.{u3} G], Eq.{max (max (succ u2) (succ u3)) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => AddMonoidAlgebra.{u2, u3} k G _inst_2) a) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u1, max (succ u2) (succ u3)} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => AddMonoidAlgebra.{u2, u3} k G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u1, max u2 u3} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)))))) (algebraMap.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u2, u3, u1} k G R _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u1, succ u2, max (succ u3) (succ u2)} R k (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.single.{u2, u3} k G _inst_2 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_4)))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => k) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2))))) (algebraMap.{u1, u2} R k _inst_1 _inst_2 _inst_3)))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.coe_algebra_map AddMonoidAlgebra.coe_algebraMapₓ'. -/
 @[simp]
 theorem coe_algebraMap [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
@@ -2291,7 +2291,7 @@ variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [A
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : Multiplicative.{u2} G), Commute.{u4} B (Distrib.toHasMul.{u4} B (NonUnitalNonAssocSemiring.toDistrib.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (fun (_x : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) => A -> B) ([anonymous].{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) f x) (coeFn.{max (succ u4) (succ u2), max (succ u2) (succ u4)} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (fun (_x : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) => (Multiplicative.{u2} G) -> B) (MonoidHom.hasCoeToFun.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (AddMonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : Multiplicative.{u2} G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u2} G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (AddMonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : Multiplicative.{u2} G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u2} G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (AddMonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_alg_hom AddMonoidAlgebra.liftNCAlgHomₓ'. -/
 /-- `lift_nc_ring_hom` as a `alg_hom`, for when `f` is an `alg_hom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : Multiplicative G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
@@ -2371,7 +2371,7 @@ theorem lift_def (F : Multiplicative G →* A) :
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : Multiplicative.{u2} G), Eq.{succ u3} A (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) => (Multiplicative.{u2} G) -> A) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (coeFn.{max 1 (max (max (succ (max u2 u1)) (succ u3)) (succ u3) (succ u2)) (max (succ u3) (succ u2)) (succ (max u2 u1)) (succ u3), max (max (succ (max u2 u1)) (succ u3)) (succ u3) (succ u2)} (Equiv.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (fun (_x : Equiv.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) => (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) -> (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u3) (succ u2), max (succ (max u2 u1)) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) -> A) ([anonymous].{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) F (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (fun (_x : Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) => (Multiplicative.{u2} G) -> G) (Equiv.hasCoeToFun.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) x) (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))))))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : Multiplicative.{u2} G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u2} G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u2} G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (AddMonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Multiplicative.{u2} G) => G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) x) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : Multiplicative.{u2} G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u2} G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Multiplicative.{u2} G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (AddMonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Multiplicative.{u2} G) => G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) x) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_symm_apply AddMonoidAlgebra.lift_symm_applyₓ'. -/
 @[simp]
 theorem lift_symm_apply (F : AddMonoidAlgebra k G →ₐ[k] A) (x : Multiplicative G) :
@@ -2446,7 +2446,7 @@ end
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {A : Type.{u3}} {H : Type.{u4}} {F : Type.{u5}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u1, u3} k A _inst_1 _inst_2] [_inst_4 : AddMonoid.{u2} G] [_inst_5 : AddMonoid.{u4} H] [_inst_6 : AddMonoidHomClass.{u5, u2, u4} F G H (AddMonoid.toAddZeroClass.{u2} G _inst_4) (AddMonoid.toAddZeroClass.{u4} H _inst_5)] (f : F) (r : k), Eq.{max (succ u4) (succ u3)} (Finsupp.{u4, u3} H A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))))) (Finsupp.mapDomain.{u2, u4, u3} G H A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))) (coeFn.{succ u5, max (succ u2) (succ u4)} F (fun (_x : F) => G -> H) (FunLike.hasCoeToFun.{succ u5, succ u2, succ u4} F G (fun (_x : G) => H) (AddHomClass.toFunLike.{u5, u2, u4} F G H (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_4)) (AddZeroClass.toHasAdd.{u4} H (AddMonoid.toAddZeroClass.{u4} H _inst_5)) (AddMonoidHomClass.toAddHomClass.{u5, u2, u4} F G H (AddMonoid.toAddZeroClass.{u2} G _inst_4) (AddMonoid.toAddZeroClass.{u4} H _inst_5) _inst_6))) f) (coeFn.{max (succ u1) (succ (max u2 u3)), max (succ u1) (succ (max u2 u3))} (RingHom.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (fun (_x : RingHom.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) => k -> (AddMonoidAlgebra.{u3, u2} A G _inst_2)) (RingHom.hasCoeToFun.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (algebraMap.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_2 _inst_3 _inst_4)) r)) (coeFn.{max (succ u1) (succ (max u4 u3)), max (succ u1) (succ (max u4 u3))} (RingHom.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u4 u3} (AddMonoidAlgebra.{u3, u4} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5))) (fun (_x : RingHom.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u4 u3} (AddMonoidAlgebra.{u3, u4} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5))) => k -> (AddMonoidAlgebra.{u3, u4} A H _inst_2)) (RingHom.hasCoeToFun.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u4 u3} (AddMonoidAlgebra.{u3, u4} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5))) (algebraMap.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5) (AddMonoidAlgebra.algebra.{u3, u4, u1} A H k _inst_1 _inst_2 _inst_3 _inst_5)) r)
 but is expected to have type
-  forall {k : Type.{u4}} {G : Type.{u5}} {A : Type.{u3}} {H : Type.{u2}} {F : Type.{u1}} [_inst_1 : CommSemiring.{u4} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u4, u3} k A _inst_1 _inst_2] [_inst_4 : AddMonoid.{u5} G] [_inst_5 : AddMonoid.{u2} H] [_inst_6 : AddMonoidHomClass.{u1, u5, u2} F G H (AddMonoid.toAddZeroClass.{u5} G _inst_4) (AddMonoid.toAddZeroClass.{u2} H _inst_5)] (f : F) (r : k), Eq.{max (succ u3) (succ u2)} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.mapDomain.{u3, u5, u2} A G _inst_2 H (FunLike.coe.{succ u1, succ u5, succ u2} F G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : G) => H) _x) (AddHomClass.toFunLike.{u1, u5, u2} F G H (AddZeroClass.toAdd.{u5} G (AddMonoid.toAddZeroClass.{u5} G _inst_4)) (AddZeroClass.toAdd.{u2} H (AddMonoid.toAddZeroClass.{u2} H _inst_5)) (AddMonoidHomClass.toAddHomClass.{u1, u5, u2} F G H (AddMonoid.toAddZeroClass.{u5} G _inst_4) (AddMonoid.toAddZeroClass.{u2} H _inst_5) _inst_6)) f) (FunLike.coe.{max (max (succ u4) (succ u5)) (succ u3), succ u4, max (succ u5) (succ u3)} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => AddMonoidAlgebra.{u3, u5} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)))))) (algebraMap.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u3, u5, u4} A G k _inst_1 _inst_2 _inst_3 _inst_4)) r)) (FunLike.coe.{max (max (succ u4) (succ u3)) (succ u2), succ u4, max (succ u3) (succ u2)} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => AddMonoidAlgebra.{u3, u2} A H _inst_2) _x) (MulHomClass.toFunLike.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)) (RingHom.instRingHomClassRingHom.{u4, max u3 u2} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)))))) (algebraMap.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5) (AddMonoidAlgebra.algebra.{u3, u2, u4} A H k _inst_1 _inst_2 _inst_3 _inst_5)) r)
+  forall {k : Type.{u4}} {G : Type.{u5}} {A : Type.{u3}} {H : Type.{u2}} {F : Type.{u1}} [_inst_1 : CommSemiring.{u4} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u4, u3} k A _inst_1 _inst_2] [_inst_4 : AddMonoid.{u5} G] [_inst_5 : AddMonoid.{u2} H] [_inst_6 : AddMonoidHomClass.{u1, u5, u2} F G H (AddMonoid.toAddZeroClass.{u5} G _inst_4) (AddMonoid.toAddZeroClass.{u2} H _inst_5)] (f : F) (r : k), Eq.{max (succ u3) (succ u2)} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.mapDomain.{u3, u5, u2} A G _inst_2 H (FunLike.coe.{succ u1, succ u5, succ u2} F G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : G) => H) _x) (AddHomClass.toFunLike.{u1, u5, u2} F G H (AddZeroClass.toAdd.{u5} G (AddMonoid.toAddZeroClass.{u5} G _inst_4)) (AddZeroClass.toAdd.{u2} H (AddMonoid.toAddZeroClass.{u2} H _inst_5)) (AddMonoidHomClass.toAddHomClass.{u1, u5, u2} F G H (AddMonoid.toAddZeroClass.{u5} G _inst_4) (AddMonoid.toAddZeroClass.{u2} H _inst_5) _inst_6)) f) (FunLike.coe.{max (max (succ u4) (succ u5)) (succ u3), succ u4, max (succ u5) (succ u3)} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => AddMonoidAlgebra.{u3, u5} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)))))) (algebraMap.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u3, u5, u4} A G k _inst_1 _inst_2 _inst_3 _inst_4)) r)) (FunLike.coe.{max (max (succ u4) (succ u3)) (succ u2), succ u4, max (succ u3) (succ u2)} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : k) => AddMonoidAlgebra.{u3, u2} A H _inst_2) _x) (MulHomClass.toFunLike.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)) (RingHom.instRingHomClassRingHom.{u4, max u3 u2} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)))))) (algebraMap.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5) (AddMonoidAlgebra.algebra.{u3, u2, u4} A H k _inst_1 _inst_2 _inst_3 _inst_5)) r)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.map_domain_algebra_map AddMonoidAlgebra.mapDomain_algebraMapₓ'. -/
 theorem mapDomain_algebraMap {A H F : Type _} [CommSemiring k] [Semiring A] [Algebra k A]
     [AddMonoid G] [AddMonoid H] [AddMonoidHomClass F G H] (f : F) (r : k) :
Diff
@@ -148,11 +148,11 @@ instance : NonUnitalNonAssocSemiring (MonoidAlgebra k G) :=
     add := (· + ·)
     left_distrib := fun f g h => by
       haveI := Classical.decEq G <;>
-        simp only [mul_def, sum_add_index, mul_add, mul_zero, single_zero, single_add,
+        simp only [mul_def, sum_add_index, mul_add, MulZeroClass.mul_zero, single_zero, single_add,
           eq_self_iff_true, forall_true_iff, forall₃_true_iff, sum_add]
     right_distrib := fun f g h => by
       haveI := Classical.decEq G <;>
-        simp only [mul_def, sum_add_index, add_mul, zero_mul, single_zero, single_add,
+        simp only [mul_def, sum_add_index, add_mul, MulZeroClass.zero_mul, single_zero, single_add,
           eq_self_iff_true, forall_true_iff, forall₃_true_iff, sum_zero, sum_add]
     zero_mul := fun f => by simp only [mul_def, sum_zero_index]
     mul_zero := fun f => by simp only [mul_def, sum_zero_index, sum_zero] }
@@ -189,7 +189,8 @@ instance : NonUnitalSemiring (MonoidAlgebra k G) :=
     mul_assoc := fun f g h => by
       simp only [mul_def, sum_sum_index, sum_zero_index, sum_add_index, sum_single_index,
         single_zero, single_add, eq_self_iff_true, forall_true_iff, forall₃_true_iff, add_mul,
-        mul_add, add_assoc, mul_assoc, zero_mul, mul_zero, sum_zero, sum_add] }
+        mul_add, add_assoc, mul_assoc, MulZeroClass.zero_mul, MulZeroClass.mul_zero, sum_zero,
+        sum_add] }
 
 end Semigroup
 
@@ -239,11 +240,11 @@ instance : NonAssocSemiring (MonoidAlgebra k G) :=
     natCast_zero := by simp [Nat.cast]
     natCast_succ := fun _ => by simp [Nat.cast] <;> rfl
     one_mul := fun f => by
-      simp only [mul_def, one_def, sum_single_index, zero_mul, single_zero, sum_zero, zero_add,
-        one_mul, sum_single]
+      simp only [mul_def, one_def, sum_single_index, MulZeroClass.zero_mul, single_zero, sum_zero,
+        zero_add, one_mul, sum_single]
     mul_one := fun f => by
-      simp only [mul_def, one_def, sum_single_index, mul_zero, single_zero, sum_zero, add_zero,
-        mul_one, sum_single] }
+      simp only [mul_def, one_def, sum_single_index, MulZeroClass.mul_zero, single_zero, sum_zero,
+        add_zero, mul_one, sum_single] }
 
 /- warning: monoid_algebra.nat_cast_def -> MonoidAlgebra.nat_cast_def is a dubious translation:
 lean 3 declaration is
@@ -434,8 +435,8 @@ theorem mul_apply_antidiagonal [Mul G] (f g : MonoidAlgebra k G) (x : G) (s : Fi
             by
             simp only [mem_filter, mem_support_iff, not_and, Classical.not_not] at hp⊢
             by_cases h1 : f p.1 = 0
-            · rw [h1, zero_mul]
-            · rw [hp hps h1, mul_zero]
+            · rw [h1, MulZeroClass.zero_mul]
+            · rw [hp hps h1, MulZeroClass.mul_zero]
         
 #align monoid_algebra.mul_apply_antidiagonal MonoidAlgebra.mul_apply_antidiagonal
 
@@ -448,8 +449,8 @@ Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_
 @[simp]
 theorem single_mul_single [Mul G] {a₁ a₂ : G} {b₁ b₂ : k} :
     (single a₁ b₁ : MonoidAlgebra k G) * single a₂ b₂ = single (a₁ * a₂) (b₁ * b₂) :=
-  (sum_single_index (by simp only [zero_mul, single_zero, sum_zero])).trans
-    (sum_single_index (by rw [mul_zero, single_zero]))
+  (sum_single_index (by simp only [MulZeroClass.zero_mul, single_zero, sum_zero])).trans
+    (sum_single_index (by rw [MulZeroClass.mul_zero, single_zero]))
 #align monoid_algebra.single_mul_single MonoidAlgebra.single_mul_single
 
 /- warning: monoid_algebra.single_pow -> MonoidAlgebra.single_pow is a dubious translation:
@@ -514,7 +515,8 @@ variable (k G)
 def ofMagma [Mul G] : G →ₙ* MonoidAlgebra k G
     where
   toFun a := single a 1
-  map_mul' a b := by simp only [mul_def, mul_one, sum_single_index, single_eq_zero, mul_zero]
+  map_mul' a b := by
+    simp only [mul_def, mul_one, sum_single_index, single_eq_zero, MulZeroClass.mul_zero]
 #align monoid_algebra.of_magma MonoidAlgebra.ofMagma
 -/
 
@@ -667,8 +669,8 @@ instance isScalarTower_self [IsScalarTower R k k] :
   ⟨fun t a b => by
     ext m
     classical simp only [mul_apply, Finsupp.smul_sum, smul_ite, smul_mul_assoc, sum_smul_index',
-        zero_mul, if_t_t, imp_true_iff, eq_self_iff_true, sum_zero, coe_smul, smul_eq_mul,
-        Pi.smul_apply, smul_zero]⟩
+        MulZeroClass.zero_mul, if_t_t, imp_true_iff, eq_self_iff_true, sum_zero, coe_smul,
+        smul_eq_mul, Pi.smul_apply, smul_zero]⟩
 #align monoid_algebra.is_scalar_tower_self MonoidAlgebra.isScalarTower_self
 
 /- warning: monoid_algebra.smul_comm_class_self -> MonoidAlgebra.sMulCommClass_self is a dubious translation:
@@ -687,7 +689,7 @@ instance sMulCommClass_self [SMulCommClass R k k] :
       ext m
       simp only [mul_apply, Finsupp.sum, Finset.smul_sum, smul_ite, mul_smul_comm, sum_smul_index',
         imp_true_iff, eq_self_iff_true, coe_smul, ite_eq_right_iff, smul_eq_mul, Pi.smul_apply,
-        mul_zero, smul_zero]⟩
+        MulZeroClass.mul_zero, smul_zero]⟩
 #align monoid_algebra.smul_comm_class_self MonoidAlgebra.sMulCommClass_self
 
 /- warning: monoid_algebra.smul_comm_class_symm_self -> MonoidAlgebra.sMulCommClass_symm_self is a dubious translation:
@@ -1443,12 +1445,13 @@ instance : NonUnitalNonAssocSemiring (AddMonoidAlgebra k G) :=
     add := (· + ·)
     left_distrib := fun f g h => by
       haveI := Classical.decEq G <;>
-        simp only [mul_def, sum_add_index, mul_add, mul_zero, single_zero, single_add,
+        simp only [mul_def, sum_add_index, mul_add, MulZeroClass.mul_zero, single_zero, single_add,
           eq_self_iff_true, forall_true_iff, forall₃_true_iff, sum_add]
     right_distrib := fun f g h => by
       haveI := Classical.decEq G <;>
-        simp only [mul_def, sum_add_index, add_mul, mul_zero, zero_mul, single_zero, single_add,
-          eq_self_iff_true, forall_true_iff, forall₃_true_iff, sum_zero, sum_add]
+        simp only [mul_def, sum_add_index, add_mul, MulZeroClass.mul_zero, MulZeroClass.zero_mul,
+          single_zero, single_add, eq_self_iff_true, forall_true_iff, forall₃_true_iff, sum_zero,
+          sum_add]
     zero_mul := fun f => by simp only [mul_def, sum_zero_index]
     mul_zero := fun f => by simp only [mul_def, sum_zero_index, sum_zero]
     nsmul := fun n f => n • f
@@ -1524,7 +1527,8 @@ instance : NonUnitalSemiring (AddMonoidAlgebra k G) :=
     mul_assoc := fun f g h => by
       simp only [mul_def, sum_sum_index, sum_zero_index, sum_add_index, sum_single_index,
         single_zero, single_add, eq_self_iff_true, forall_true_iff, forall₃_true_iff, add_mul,
-        mul_add, add_assoc, mul_assoc, zero_mul, mul_zero, sum_zero, sum_add] }
+        mul_add, add_assoc, mul_assoc, MulZeroClass.zero_mul, MulZeroClass.mul_zero, sum_zero,
+        sum_add] }
 
 end Semigroup
 
@@ -1543,11 +1547,11 @@ instance : NonAssocSemiring (AddMonoidAlgebra k G) :=
     natCast_zero := by simp [Nat.cast]
     natCast_succ := fun _ => by simp [Nat.cast] <;> rfl
     one_mul := fun f => by
-      simp only [mul_def, one_def, sum_single_index, zero_mul, single_zero, sum_zero, zero_add,
-        one_mul, sum_single]
+      simp only [mul_def, one_def, sum_single_index, MulZeroClass.zero_mul, single_zero, sum_zero,
+        zero_add, one_mul, sum_single]
     mul_one := fun f => by
-      simp only [mul_def, one_def, sum_single_index, mul_zero, single_zero, sum_zero, add_zero,
-        mul_one, sum_single] }
+      simp only [mul_def, one_def, sum_single_index, MulZeroClass.mul_zero, single_zero, sum_zero,
+        add_zero, mul_one, sum_single] }
 
 /- warning: add_monoid_algebra.nat_cast_def -> AddMonoidAlgebra.nat_cast_def is a dubious translation:
 lean 3 declaration is
@@ -1790,7 +1794,8 @@ Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of_
 def ofMagma [Add G] : Multiplicative G →ₙ* AddMonoidAlgebra k G
     where
   toFun a := single a 1
-  map_mul' a b := by simpa only [mul_def, mul_one, sum_single_index, single_eq_zero, mul_zero]
+  map_mul' a b := by
+    simpa only [mul_def, mul_one, sum_single_index, single_eq_zero, MulZeroClass.mul_zero]
 #align add_monoid_algebra.of_magma AddMonoidAlgebra.ofMagma
 
 #print AddMonoidAlgebra.of /-
Diff
@@ -163,7 +163,7 @@ variable [Semiring R]
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] [_inst_3 : Semiring.{u3} R] {g_hom : Type.{u4}} [_inst_4 : MulHomClass.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : g_hom) (a : MonoidAlgebra.{u1, u2} k G _inst_1) (b : MonoidAlgebra.{u1, u2} k G _inst_1), (forall {x : G} {y : G}, (Membership.Mem.{u2, u2} G (Finset.{u2} G) (Finset.hasMem.{u2} G) y (Finsupp.support.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a)) -> (Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) b x)) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g y))) -> (Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) a) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) b)))
 but is expected to have type
-  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Mul.{u4} G] [_inst_3 : Semiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : MulHomClass.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : g_hom) (a : MonoidAlgebra.{u3, u4} k G _inst_1) (b : MonoidAlgebra.{u3, u4} k G _inst_1), (forall {x : G} {y : G}, (Membership.mem.{u4, u4} G (Finset.{u4} G) (Finset.instMembershipFinset.{u4} G) y (Finsupp.support.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1)) a)) -> (Commute.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) _inst_3))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u3} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g y))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.mul.{u3, u4} k G _inst_1 _inst_2)) a b)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.mul.{u3, u4} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) a) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) b)))
+  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Mul.{u4} G] [_inst_3 : Semiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : MulHomClass.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : g_hom) (a : MonoidAlgebra.{u3, u4} k G _inst_1) (b : MonoidAlgebra.{u3, u4} k G _inst_1), (forall {x : G} {y : G}, (Membership.mem.{u4, u4} G (Finset.{u4} G) (Finset.instMembershipFinset.{u4} G) y (Finsupp.support.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1)) a)) -> (Commute.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) _inst_3))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u3} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g y))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.mul.{u3, u4} k G _inst_1 _inst_2)) a b)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.mul.{u3, u4} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) a) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) b)))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_mul MonoidAlgebra.liftNC_mulₓ'. -/
 theorem liftNC_mul {g_hom : Type _} [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)) :
@@ -278,7 +278,7 @@ variable [Semiring R]
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : G), Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f x) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => G -> R) (MonoidHom.hasCoeToFun.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g y)) -> (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : G), Commute.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) x) (NonUnitalNonAssocSemiring.toMul.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) x) (Semiring.toNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) x) _inst_3))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.instRingHomClassRingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) f x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => R) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G R (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g y)) -> (RingHom.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : G), Commute.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) x) (NonUnitalNonAssocSemiring.toMul.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) x) (Semiring.toNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) x) _inst_3))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.instRingHomClassRingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) f x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => R) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G R (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g y)) -> (RingHom.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_ring_hom MonoidAlgebra.liftNCRingHomₓ'. -/
 /-- `lift_nc` as a `ring_hom`, for when `f x` and `g y` commute -/
 def liftNCRingHom (f : k →+* R) (g : G →* R) (h_comm : ∀ x y, Commute (f x) (g y)) :
@@ -487,7 +487,7 @@ theorem mapDomain_one {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β]
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {α₂ : Type.{u3}} [_inst_2 : Semiring.{u2} β] [_inst_3 : Mul.{u1} α] [_inst_4 : Mul.{u3} α₂] {F : Type.{u4}} [_inst_5 : MulHomClass.{u4, u1, u3} F α α₂ _inst_3 _inst_4] (f : F) (x : MonoidAlgebra.{u2, u1} β α _inst_2) (y : MonoidAlgebra.{u2, u1} β α _inst_2), Eq.{max (succ u3) (succ u2)} (Finsupp.{u3, u2} α₂ β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))))))) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (MulHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) (MonoidAlgebra.{u2, u1} β α _inst_2) (MonoidAlgebra.{u2, u1} β α _inst_2) (instHMul.{max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) (MonoidAlgebra.mul.{u2, u1} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (instHMul.{max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (MonoidAlgebra.mul.{u2, u3} β α₂ _inst_2 _inst_4)) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (MulHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) x) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (MulHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) y))
 but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : Mul.{u4} α] [_inst_4 : Mul.{u2} α₂] {F : Type.{u1}} [_inst_5 : MulHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F) (x : MonoidAlgebra.{u3, u4} β α _inst_2) (y : MonoidAlgebra.{u3, u4} β α _inst_2), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (HMul.hMul.{max u4 u3, max u4 u3, max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.{u3, u4} β α _inst_2) (instHMul.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.mul.{u3, u4} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u3 u2, max u3 u2, max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (instHMul.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mul.{u3, u2} β α₂ _inst_2 _inst_4)) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) x) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) y))
+  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : Mul.{u4} α] [_inst_4 : Mul.{u2} α₂] {F : Type.{u1}} [_inst_5 : MulHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F) (x : MonoidAlgebra.{u3, u4} β α _inst_2) (y : MonoidAlgebra.{u3, u4} β α _inst_2), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (HMul.hMul.{max u4 u3, max u4 u3, max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.{u3, u4} β α _inst_2) (instHMul.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.mul.{u3, u4} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u3 u2, max u3 u2, max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (instHMul.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mul.{u3, u2} β α₂ _inst_2 _inst_4)) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) x) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) y))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.map_domain_mul MonoidAlgebra.mapDomain_mulₓ'. -/
 /-- Like `finsupp.map_domain_add`, but for the convolutive multiplication we define in this file -/
 theorem mapDomain_mul {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [Mul α] [Mul α₂]
@@ -534,7 +534,7 @@ end
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (g : G) (r : k), Eq.{succ (max u1 u2)} (MonoidAlgebra.{u1, u2} k G _inst_1) (SMul.smul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) r (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => G -> (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) g)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) g r)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (g : G) (r : k), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (instHSMul.{u1, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (SMulZeroClass.toSMul.{u1, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (MulZeroOneClass.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G _inst_2) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) g)) (MonoidAlgebra.single.{u1, u2} k G _inst_1 g r)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (g : G) (r : k), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (instHSMul.{u1, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (SMulZeroClass.toSMul.{u1, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (MulZeroOneClass.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G _inst_2) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) g)) (MonoidAlgebra.single.{u1, u2} k G _inst_1 g r)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.smul_of MonoidAlgebra.smul_ofₓ'. -/
 theorem smul_of [MulOneClass G] (g : G) (r : k) : r • of k G g = single g r := by simp
 #align monoid_algebra.smul_of MonoidAlgebra.smul_of
@@ -543,7 +543,7 @@ theorem smul_of [MulOneClass G] (g : G) (r : k) : r • of k G g = single g r :=
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Nontrivial.{u1} k], Function.Injective.{succ u2, succ (max u1 u2)} G (MonoidAlgebra.{u1, u2} k G _inst_1) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => G -> (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Nontrivial.{u1} k], Function.Injective.{succ u2, max (succ u1) (succ u2)} G (MonoidAlgebra.{u1, u2} k G _inst_1) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G _inst_2) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Nontrivial.{u1} k], Function.Injective.{succ u2, max (succ u1) (succ u2)} G (MonoidAlgebra.{u1, u2} k G _inst_1) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G _inst_2) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.of_injective MonoidAlgebra.of_injectiveₓ'. -/
 theorem of_injective [MulOneClass G] [Nontrivial k] : Function.Injective (of k G) := fun a b h => by
   simpa using (single_eq_single_iff _ _ _ _).mp h
@@ -635,7 +635,7 @@ theorem single_one_mul_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] {R : Type.{u3}} [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u1, u2} k G _inst_1), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => G -> R) (MonoidHom.hasCoeToFun.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) (SMul.smul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) c φ)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f c) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => G -> R) (MonoidHom.hasCoeToFun.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) φ))
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} [_inst_1 : Semiring.{u2} k] [_inst_2 : MulOneClass.{u3} G] {R : Type.{u1}} [_inst_3 : Semiring.{u1} R] (f : RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u2, u3} k G _inst_1), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MulZeroOneClass.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R (MulOneClass.toMul.{u3} G _inst_2) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MulZeroOneClass.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) φ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) _inst_3)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f c) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R (MulOneClass.toMul.{u3} G _inst_2) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) φ))
+  forall {k : Type.{u2}} {G : Type.{u3}} [_inst_1 : Semiring.{u2} k] [_inst_2 : MulOneClass.{u3} G] {R : Type.{u1}} [_inst_3 : Semiring.{u1} R] (f : RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u2, u3} k G _inst_1), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MulZeroOneClass.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R (MulOneClass.toMul.{u3} G _inst_2) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MulZeroOneClass.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) φ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) _inst_3)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f c) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R (MulOneClass.toMul.{u3} G _inst_2) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) φ))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_smul 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 φ :=
@@ -829,7 +829,7 @@ def mapDomainRingHom (k : Type _) {H F : Type _} [Semiring k] [Monoid G] [Monoid
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Semiring.{u3} R] {f : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)} {g : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)}, (forall (b : k), Eq.{succ u3} R (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) b)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) b))) -> (forall (a : G), Eq.{succ u3} R (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f g)
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : MulOneClass.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (forall (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b))) -> (forall (a : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1)))))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
+  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : MulOneClass.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (forall (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b))) -> (forall (a : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1)))))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.ring_hom_ext MonoidAlgebra.ringHom_extₓ'. -/
 /-- If two ring homomorphisms from `monoid_algebra k G` are equal on all `single a 1`
 and `single 1 b`, then they are equal. -/
@@ -895,7 +895,7 @@ def singleOneAlgHom {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Mo
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {A : Type.{u3}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u1, u3} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u2} G], Eq.{max (succ u1) (succ (max u3 u2))} (k -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (coeFn.{max (succ u1) (succ (max u3 u2)), max (succ u1) (succ (max u3 u2))} (RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (fun (_x : RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) => k -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (RingHom.hasCoeToFun.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (algebraMap.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u1, succ u3, max (succ u2) (succ u3)} k A (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.single.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G (Monoid.toMulOneClass.{u2} G _inst_4)))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (fun (_x : RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) => k -> A) (RingHom.hasCoeToFun.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (algebraMap.{u1, u3} k A _inst_1 _inst_2 _inst_3)))
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} k] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u3} G], Eq.{max (max (succ u2) (succ u3)) (succ u1)} (forall (ᾰ : k), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) ᾰ) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u2, max (succ u3) (succ u1)} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u2, u3, u1} k G A _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u2, succ u1, max (succ u3) (succ u1)} k A (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.single.{u1, u3} A G _inst_2 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (Monoid.toOne.{u3} G _inst_4)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (algebraMap.{u2, u1} k A _inst_1 _inst_2 _inst_3)))
+  forall {k : Type.{u2}} {G : Type.{u3}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} k] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u3} G], Eq.{max (max (succ u2) (succ u3)) (succ u1)} (forall (ᾰ : k), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) ᾰ) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u2, max (succ u3) (succ u1)} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u2, u3, u1} k G A _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u2, succ u1, max (succ u3) (succ u1)} k A (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.single.{u1, u3} A G _inst_2 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (Monoid.toOne.{u3} G _inst_4)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (algebraMap.{u2, u1} k A _inst_1 _inst_2 _inst_3)))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.coe_algebra_map MonoidAlgebra.coe_algebraMapₓ'. -/
 @[simp]
 theorem coe_algebraMap {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G] :
@@ -907,7 +907,7 @@ theorem coe_algebraMap {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A]
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] (a : G) (b : k), Eq.{max (succ u2) (succ u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) a b) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (instHMul.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (coeFn.{max (succ u1) (succ (max u1 u2)), max (succ u1) (succ (max u1 u2))} (RingHom.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (fun (_x : RingHom.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) => k -> (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1))) (RingHom.hasCoeToFun.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (algebraMap.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) b) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) => G -> (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) a))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] (a : G) (b : k), Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) a b) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) (instHMul.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (RingHom.instRingHomClassRingHom.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (algebraMap.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) b) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) a))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] (a : G) (b : k), Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) a b) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) (instHMul.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (RingHom.instRingHomClassRingHom.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (algebraMap.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) b) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) a))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_eq_algebra_map_mul_of 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 := by simp
@@ -917,7 +917,7 @@ theorem single_eq_algebraMap_mul_of [CommSemiring k] [Monoid G] (a : G) (b : k)
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {A : Type.{u3}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u1, u3} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u2} G] (a : G) (b : k), Eq.{max (succ u2) (succ u3)} (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.single.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2)))) a (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (fun (_x : RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) => k -> A) (RingHom.hasCoeToFun.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (algebraMap.{u1, u3} k A _inst_1 _inst_2 _inst_3) b)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (instHMul.{max u2 u3} (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (MonoidAlgebra.mul.{u3, u2} A G _inst_2 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_4)))) (coeFn.{max (succ u1) (succ (max u3 u2)), max (succ u1) (succ (max u3 u2))} (RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (fun (_x : RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) => k -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (RingHom.hasCoeToFun.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (algebraMap.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_2 _inst_3 _inst_4)) b) (coeFn.{max (succ (max u3 u2)) (succ u2), max (succ u2) (succ (max u3 u2))} (MonoidHom.{u2, max u3 u2} G (MonoidAlgebra.{u3, u2} A G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4))))) (fun (_x : MonoidHom.{u2, max u3 u2} G (MonoidAlgebra.{u3, u2} A G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4))))) => G -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (MonoidHom.hasCoeToFun.{u2, max u3 u2} G (MonoidAlgebra.{u3, u2} A G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4))))) (MonoidAlgebra.of.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4)) a))
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} k] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u3} G] (a : G) (b : k), Eq.{max (succ u3) (succ u1)} (MonoidAlgebra.{u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => A) b) G _inst_2) (MonoidAlgebra.single.{u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => A) b) G _inst_2 a (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (algebraMap.{u2, u1} k A _inst_1 _inst_2 _inst_3) b)) (HMul.hMul.{max u3 u1, max u3 u1, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u3} A G _inst_2) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) (instHMul.{max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) (MonoidAlgebra.mul.{u1, u3} A G _inst_2 (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G _inst_4)))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u2, max (succ u3) (succ u1)} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u2, u3, u1} k G A _inst_1 _inst_2 _inst_3 _inst_4)) b) (FunLike.coe.{max (succ u3) (succ u1), succ u3, max (succ u3) (succ u1)} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max u3 u1, u3, max u3 u1} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (MonoidAlgebra.{u1, u3} A G _inst_2) (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G _inst_4)) (MulOneClass.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, max u3 u1} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4)))) (MonoidHom.monoidHomClass.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))))) (MonoidAlgebra.of.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4)) a))
+  forall {k : Type.{u2}} {G : Type.{u3}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} k] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u3} G] (a : G) (b : k), Eq.{max (succ u3) (succ u1)} (MonoidAlgebra.{u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => A) b) G _inst_2) (MonoidAlgebra.single.{u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => A) b) G _inst_2 a (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (algebraMap.{u2, u1} k A _inst_1 _inst_2 _inst_3) b)) (HMul.hMul.{max u3 u1, max u3 u1, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u3} A G _inst_2) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) (instHMul.{max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) (MonoidAlgebra.mul.{u1, u3} A G _inst_2 (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G _inst_4)))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u2, max (succ u3) (succ u1)} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u2, u3, u1} k G A _inst_1 _inst_2 _inst_3 _inst_4)) b) (FunLike.coe.{max (succ u3) (succ u1), succ u3, max (succ u3) (succ u1)} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max u3 u1, u3, max u3 u1} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (MonoidAlgebra.{u1, u3} A G _inst_2) (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G _inst_4)) (MulOneClass.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, max u3 u1} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4)))) (MonoidHom.monoidHomClass.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))))) (MonoidAlgebra.of.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4)) a))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_algebra_map_eq_algebra_map_mul_of 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) :
@@ -928,7 +928,7 @@ theorem single_algebraMap_eq_algebraMap_mul_of {A : Type _} [CommSemiring k] [Se
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] {p : (MonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : MonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) => G -> (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) g)) -> (forall (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Finsupp.add.{u2, u1} G k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) f g))) -> (forall (r : k) (f : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (SMul.smul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) r f))) -> (p f)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] {p : (MonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : MonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) g)) -> (forall (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r f))) -> (p f)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] {p : (MonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : MonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) g)) -> (forall (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r f))) -> (p f)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.induction_on 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))
@@ -952,7 +952,7 @@ variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [A
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : G), Commute.{u4} B (Distrib.toHasMul.{u4} B (NonUnitalNonAssocSemiring.toDistrib.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (fun (_x : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) => A -> B) ([anonymous].{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) f x) (coeFn.{max (succ u4) (succ u2), max (succ u2) (succ u4)} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (fun (_x : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) => G -> B) (MonoidHom.hasCoeToFun.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) g y)) -> (AlgHom.{u1, max u3 u2, u4} k (MonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (MonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (MonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_alg_hom MonoidAlgebra.liftNCAlgHomₓ'. -/
 /-- `lift_nc_ring_hom` as a `alg_hom`, for when `f` is an `alg_hom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
@@ -1031,7 +1031,7 @@ theorem lift_def (F : G →* A) : ⇑(lift k G A F) = liftNC ((algebraMap k A :
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : G), Eq.{succ u3} A (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) => G -> A) (MonoidHom.hasCoeToFun.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ u3) (succ u2)) (max (succ u3) (succ u2)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ u3) (succ u2)} (Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) => (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) -> (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u3) (succ u2), max (succ (max u1 u2)) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) -> A) ([anonymous].{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) F (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) x (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))))))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_symm_apply MonoidAlgebra.lift_symm_applyₓ'. -/
 @[simp]
 theorem lift_symm_apply (F : MonoidAlgebra k G →ₐ[k] A) (x : G) :
@@ -1090,7 +1090,7 @@ def mapDomainNonUnitalAlgHom (k A : Type _) [CommSemiring k] [Semiring A] [Algeb
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_2 : Monoid.{u1} G] (k : Type.{u2}) (A : Type.{u3}) {H : Type.{u4}} {F : Type.{u5}} [_inst_7 : CommSemiring.{u2} k] [_inst_8 : Semiring.{u3} A] [_inst_9 : Algebra.{u2, u3} k A _inst_7 _inst_8] [_inst_10 : Monoid.{u4} H] [_inst_11 : MonoidHomClass.{u5, u1, u4} F G H (Monoid.toMulOneClass.{u1} G _inst_2) (Monoid.toMulOneClass.{u4} H _inst_10)] (f : F) (r : k), Eq.{max (succ u4) (succ u3)} (Finsupp.{u4, u3} H A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_8))))))) (Finsupp.mapDomain.{u1, u4, u3} G H A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_8))) (coeFn.{succ u5, max (succ u1) (succ u4)} F (fun (_x : F) => G -> H) (FunLike.hasCoeToFun.{succ u5, succ u1, succ u4} F G (fun (_x : G) => H) (MulHomClass.toFunLike.{u5, u1, u4} F G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G _inst_2)) (MulOneClass.toHasMul.{u4} H (Monoid.toMulOneClass.{u4} H _inst_10)) (MonoidHomClass.toMulHomClass.{u5, u1, u4} F G H (Monoid.toMulOneClass.{u1} G _inst_2) (Monoid.toMulOneClass.{u4} H _inst_10) _inst_11))) f) (coeFn.{max (succ u2) (succ (max u3 u1)), max (succ u2) (succ (max u3 u1))} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u3, u1} A G _inst_8) (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2))) (fun (_x : RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u3, u1} A G _inst_8) (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2))) => k -> (MonoidAlgebra.{u3, u1} A G _inst_8)) (RingHom.hasCoeToFun.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u3, u1} A G _inst_8) (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2) (MonoidAlgebra.algebra.{u2, u1, u3} k G A _inst_7 _inst_8 _inst_9 _inst_2)) r)) (coeFn.{max (succ u2) (succ (max u3 u4)), max (succ u2) (succ (max u3 u4))} (RingHom.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u4} (MonoidAlgebra.{u3, u4} A H _inst_8) (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10))) (fun (_x : RingHom.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u4} (MonoidAlgebra.{u3, u4} A H _inst_8) (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10))) => k -> (MonoidAlgebra.{u3, u4} A H _inst_8)) (RingHom.hasCoeToFun.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u4} (MonoidAlgebra.{u3, u4} A H _inst_8) (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10))) (algebraMap.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10) (MonoidAlgebra.algebra.{u2, u4, u3} k H A _inst_7 _inst_8 _inst_9 _inst_10)) r)
 but is expected to have type
-  forall {G : Type.{u5}} [_inst_2 : Monoid.{u5} G] (k : Type.{u4}) (A : Type.{u3}) {H : Type.{u2}} {F : Type.{u1}} [_inst_7 : CommSemiring.{u4} k] [_inst_8 : Semiring.{u3} A] [_inst_9 : Algebra.{u4, u3} k A _inst_7 _inst_8] [_inst_10 : Monoid.{u2} H] [_inst_11 : MonoidHomClass.{u1, u5, u2} F G H (Monoid.toMulOneClass.{u5} G _inst_2) (Monoid.toMulOneClass.{u2} H _inst_10)] (f : F) (r : k), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.mapDomain.{u3, u5, u2} A G _inst_8 H (FunLike.coe.{succ u1, succ u5, succ u2} F G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) _x) (MulHomClass.toFunLike.{u1, u5, u2} F G H (MulOneClass.toMul.{u5} G (Monoid.toMulOneClass.{u5} G _inst_2)) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H _inst_10)) (MonoidHomClass.toMulHomClass.{u1, u5, u2} F G H (Monoid.toMulOneClass.{u5} G _inst_2) (Monoid.toMulOneClass.{u2} H _inst_10) _inst_11)) f) (FunLike.coe.{max (max (succ u5) (succ u4)) (succ u3), succ u4, max (succ u5) (succ u3)} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u3, u5} A G _inst_8) _x) (MulHomClass.toFunLike.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)))) (NonUnitalNonAssocSemiring.toMul.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)) (RingHom.instRingHomClassRingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)))))) (algebraMap.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2) (MonoidAlgebra.algebra.{u4, u5, u3} k G A _inst_7 _inst_8 _inst_9 _inst_2)) r)) (FunLike.coe.{max (max (succ u4) (succ u3)) (succ u2), succ u4, max (succ u3) (succ u2)} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u3, u2} A H _inst_8) _x) (MulHomClass.toFunLike.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)) (RingHom.instRingHomClassRingHom.{u4, max u3 u2} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)))))) (algebraMap.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10) (MonoidAlgebra.algebra.{u4, u2, u3} k H A _inst_7 _inst_8 _inst_9 _inst_10)) r)
+  forall {G : Type.{u5}} [_inst_2 : Monoid.{u5} G] (k : Type.{u4}) (A : Type.{u3}) {H : Type.{u2}} {F : Type.{u1}} [_inst_7 : CommSemiring.{u4} k] [_inst_8 : Semiring.{u3} A] [_inst_9 : Algebra.{u4, u3} k A _inst_7 _inst_8] [_inst_10 : Monoid.{u2} H] [_inst_11 : MonoidHomClass.{u1, u5, u2} F G H (Monoid.toMulOneClass.{u5} G _inst_2) (Monoid.toMulOneClass.{u2} H _inst_10)] (f : F) (r : k), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.mapDomain.{u3, u5, u2} A G _inst_8 H (FunLike.coe.{succ u1, succ u5, succ u2} F G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{u1, u5, u2} F G H (MulOneClass.toMul.{u5} G (Monoid.toMulOneClass.{u5} G _inst_2)) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H _inst_10)) (MonoidHomClass.toMulHomClass.{u1, u5, u2} F G H (Monoid.toMulOneClass.{u5} G _inst_2) (Monoid.toMulOneClass.{u2} H _inst_10) _inst_11)) f) (FunLike.coe.{max (max (succ u5) (succ u4)) (succ u3), succ u4, max (succ u5) (succ u3)} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u3, u5} A G _inst_8) _x) (MulHomClass.toFunLike.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)))) (NonUnitalNonAssocSemiring.toMul.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)) (RingHom.instRingHomClassRingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)))))) (algebraMap.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2) (MonoidAlgebra.algebra.{u4, u5, u3} k G A _inst_7 _inst_8 _inst_9 _inst_2)) r)) (FunLike.coe.{max (max (succ u4) (succ u3)) (succ u2), succ u4, max (succ u3) (succ u2)} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => MonoidAlgebra.{u3, u2} A H _inst_8) _x) (MulHomClass.toFunLike.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)) (RingHom.instRingHomClassRingHom.{u4, max u3 u2} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)))))) (algebraMap.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10) (MonoidAlgebra.algebra.{u4, u2, u3} k H A _inst_7 _inst_8 _inst_9 _inst_10)) r)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.map_domain_algebra_map MonoidAlgebra.mapDomain_algebraMapₓ'. -/
 theorem mapDomain_algebraMap (k A : Type _) {H F : Type _} [CommSemiring k] [Semiring A]
     [Algebra k A] [Monoid H] [MonoidHomClass F G H] (f : F) (r : k) :
@@ -1334,7 +1334,7 @@ variable [Module k V] [Module (MonoidAlgebra k G) V] [IsScalarTower k (MonoidAlg
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {V : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3] [_inst_5 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3] [_inst_6 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_1))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_1) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} k V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} k V (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4))))] (W : Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4), (forall (g : G) (v : V), (Membership.Mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) v W) -> (Membership.Mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) (SMul.smul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) => G -> (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) g) v) W)) -> (Submodule.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {V : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4))))] (W : Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4), (forall (g : G) (v : V), (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.instSetLikeSubmodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) v W) -> (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.instSetLikeSubmodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) (HSMul.hSMul.{max u1 u2, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V V (instHSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (SMulZeroClass.toSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidWithZero.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5))))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) g) v) W)) -> (Submodule.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {V : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4))))] (W : Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4), (forall (g : G) (v : V), (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.instSetLikeSubmodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) v W) -> (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.instSetLikeSubmodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) (HSMul.hSMul.{max u1 u2, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V V (instHSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (SMulZeroClass.toSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidWithZero.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5))))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) g) v) W)) -> (Submodule.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.submodule_of_smul_mem MonoidAlgebra.submoduleOfSmulMemₓ'. -/
 /-- A submodule over `k` which is stable under scalar multiplication by elements of `G` is a
 submodule over `monoid_algebra k G`  -/
@@ -1467,7 +1467,7 @@ variable [Semiring R]
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] [_inst_3 : Semiring.{u3} R] {g_hom : Type.{u4}} [_inst_4 : MulHomClass.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : g_hom) (a : AddMonoidAlgebra.{u1, u2} k G _inst_1) (b : AddMonoidAlgebra.{u1, u2} k G _inst_1), (forall {x : G} {y : G}, (Membership.Mem.{u2, u2} G (Finset.{u2} G) (Finset.hasMem.{u2} G) y (Finsupp.support.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a)) -> (Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) b x)) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (fun (_x : Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) => G -> (Multiplicative.{u2} G)) (Equiv.hasCoeToFun.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) y)))) -> (Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) a) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) b)))
 but is expected to have type
-  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Add.{u4} G] [_inst_3 : Semiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : MulHomClass.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : g_hom) (a : AddMonoidAlgebra.{u3, u4} k G _inst_1) (b : AddMonoidAlgebra.{u3, u4} k G _inst_1), (forall {x : G} {y : G}, (Membership.mem.{u4, u4} G (Finset.{u4} G) (Finset.instMembershipFinset.{u4} G) y (Finsupp.support.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1)) a)) -> (Commute.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) _inst_3))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u3} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g (FunLike.coe.{succ u4, succ u4, succ u4} (Equiv.{succ u4, succ u4} G (Multiplicative.{u4} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : G) => Multiplicative.{u4} G) _x) (Equiv.instFunLikeEquiv.{succ u4, succ u4} G (Multiplicative.{u4} G)) (Multiplicative.ofAdd.{u4} G) y)))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.hasMul.{u3, u4} k G _inst_1 _inst_2)) a b)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.hasMul.{u3, u4} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) a) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) b)))
+  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Add.{u4} G] [_inst_3 : Semiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : MulHomClass.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : g_hom) (a : AddMonoidAlgebra.{u3, u4} k G _inst_1) (b : AddMonoidAlgebra.{u3, u4} k G _inst_1), (forall {x : G} {y : G}, (Membership.mem.{u4, u4} G (Finset.{u4} G) (Finset.instMembershipFinset.{u4} G) y (Finsupp.support.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1)) a)) -> (Commute.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) _inst_3))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u3} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g (FunLike.coe.{succ u4, succ u4, succ u4} (Equiv.{succ u4, succ u4} G (Multiplicative.{u4} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : G) => Multiplicative.{u4} G) _x) (Equiv.instFunLikeEquiv.{succ u4, succ u4} G (Multiplicative.{u4} G)) (Multiplicative.ofAdd.{u4} G) y)))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.hasMul.{u3, u4} k G _inst_1 _inst_2)) a b)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.hasMul.{u3, u4} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) a) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) b)))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_mul AddMonoidAlgebra.liftNC_mulₓ'. -/
 theorem liftNC_mul {g_hom : Type _} [MulHomClass g_hom (Multiplicative G) R] (f : k →+* R)
     (g : g_hom) (a b : AddMonoidAlgebra k G)
@@ -1585,7 +1585,7 @@ variable [Semiring R]
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : Multiplicative.{u2} G), Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f x) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => (Multiplicative.{u2} G) -> R) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g y)) -> (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : Multiplicative.{u2} G), Commute.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) x) (NonUnitalNonAssocSemiring.toMul.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) x) (Semiring.toNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) x) _inst_3))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.instRingHomClassRingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) f x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u2} G) => R) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) R (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g y)) -> (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : Multiplicative.{u2} G), Commute.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) x) (NonUnitalNonAssocSemiring.toMul.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) x) (Semiring.toNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) x) _inst_3))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.instRingHomClassRingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) f x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u2} G) => R) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) R (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g y)) -> (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_ring_hom AddMonoidAlgebra.liftNCRingHomₓ'. -/
 /-- `lift_nc` as a `ring_hom`, for when `f` and `g` commute -/
 def liftNCRingHom (f : k →+* R) (g : Multiplicative G →* R) (h_comm : ∀ x y, Commute (f x) (g y)) :
@@ -1814,7 +1814,7 @@ end
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : Multiplicative.{u2} G), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (fun (_x : Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) => (Multiplicative.{u2} G) -> G) (Equiv.hasCoeToFun.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) a) (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : Multiplicative.{u2} G), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a) (AddMonoidAlgebra.single.{u1, u2} k ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Multiplicative.{u2} G) => G) a) _inst_1 (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Multiplicative.{u2} G) => G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) a) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : Multiplicative.{u2} G), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a) (AddMonoidAlgebra.single.{u1, u2} k ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Multiplicative.{u2} G) => G) a) _inst_1 (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Multiplicative.{u2} G) => G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) a) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of_apply AddMonoidAlgebra.of_applyₓ'. -/
 @[simp]
 theorem of_apply [AddZeroClass G] (a : Multiplicative G) : of k G a = single a.toAdd 1 :=
@@ -1836,7 +1836,7 @@ theorem of'_apply (a : G) : of' k G a = single a 1 :=
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : G), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.of'.{u1, u2} k G _inst_1 a) (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : G), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.of'.{u1, u2} k G _inst_1 a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : G), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.of'.{u1, u2} k G _inst_1 a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of'_eq_of AddMonoidAlgebra.of'_eq_ofₓ'. -/
 theorem of'_eq_of [AddZeroClass G] (a : G) : of' k G a = of k G a :=
   rfl
@@ -1846,7 +1846,7 @@ theorem of'_eq_of [AddZeroClass G] (a : G) : of' k G a = of k G a :=
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Nontrivial.{u1} k] [_inst_3 : AddZeroClass.{u2} G], Function.Injective.{succ u2, max (succ u2) (succ u1)} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_3))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Nontrivial.{u1} k] [_inst_3 : AddZeroClass.{u2} G], Function.Injective.{succ u2, max (succ u1) (succ u2)} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_3)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_3))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Nontrivial.{u1} k] [_inst_3 : AddZeroClass.{u2} G], Function.Injective.{succ u2, max (succ u1) (succ u2)} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_3)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_3))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of_injective AddMonoidAlgebra.of_injectiveₓ'. -/
 theorem of_injective [Nontrivial k] [AddZeroClass G] : Function.Injective (of k G) := fun a b h =>
   by simpa using (single_eq_single_iff _ _ _ _).mp h
@@ -1941,7 +1941,7 @@ theorem single_mul_apply [AddGroup G] (r : k) (x : G) (f : AddMonoidAlgebra k G)
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] {R : Type.{u3}} [_inst_2 : AddZeroClass.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u1, u2} k G _inst_1), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => (Multiplicative.{u2} G) -> R) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) (SMul.smul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) c φ)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f c) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => (Multiplicative.{u2} G) -> R) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) φ))
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} [_inst_1 : Semiring.{u2} k] {R : Type.{u1}} [_inst_2 : AddZeroClass.{u3} G] [_inst_3 : Semiring.{u1} R] (f : RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u2, u3} k G _inst_1), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) (fun (_x : Multiplicative.{u3} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u3} G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (MulOneClass.toMul.{u3} (Multiplicative.{u3} G) (Multiplicative.mulOneClass.{u3} G _inst_2)) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) φ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) _inst_3)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f c) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) (fun (_x : Multiplicative.{u3} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u3} G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (MulOneClass.toMul.{u3} (Multiplicative.{u3} G) (Multiplicative.mulOneClass.{u3} G _inst_2)) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) φ))
+  forall {k : Type.{u2}} {G : Type.{u3}} [_inst_1 : Semiring.{u2} k] {R : Type.{u1}} [_inst_2 : AddZeroClass.{u3} G] [_inst_3 : Semiring.{u1} R] (f : RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u2, u3} k G _inst_1), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) (fun (_x : Multiplicative.{u3} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u3} G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (MulOneClass.toMul.{u3} (Multiplicative.{u3} G) (Multiplicative.mulOneClass.{u3} G _inst_2)) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) φ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) c) _inst_3)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => R) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f c) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) (fun (_x : Multiplicative.{u3} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u3} G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (MulOneClass.toMul.{u3} (Multiplicative.{u3} G) (Multiplicative.mulOneClass.{u3} G _inst_2)) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) φ))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_smul AddMonoidAlgebra.liftNC_smulₓ'. -/
 theorem liftNC_smul {R : Type _} [AddZeroClass G] [Semiring R] (f : k →+* R)
     (g : Multiplicative G →* R) (c : k) (φ : MonoidAlgebra k G) :
@@ -1953,7 +1953,7 @@ theorem liftNC_smul {R : Type _} [AddZeroClass G] [Semiring R] (f : k →+* R)
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {p : (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (fun (_x : Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) => G -> (Multiplicative.{u2} G)) (Equiv.hasCoeToFun.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) g))) -> (forall (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toHasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (SMul.smul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) r f))) -> (p f)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {p : (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : G) => Multiplicative.{u2} G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) g))) -> (forall (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r f))) -> (p f)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {p : (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : G) => Multiplicative.{u2} G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) g))) -> (forall (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r f))) -> (p f)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.induction_on AddMonoidAlgebra.induction_onₓ'. -/
 theorem induction_on [AddMonoid G] {p : AddMonoidAlgebra k G → Prop} (f : AddMonoidAlgebra k G)
     (hM : ∀ g, p (of k G (Multiplicative.ofAdd g)))
@@ -2154,7 +2154,7 @@ def singleZeroRingHom [Semiring k] [AddMonoid G] : k →+* AddMonoidAlgebra k G
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] {f : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)} {g : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)}, (forall (b : k), Eq.{succ u3} R (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) b)) (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) b))) -> (forall (a : G), Eq.{succ u3} R (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))) (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))))) -> (Eq.{max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f g)
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : AddMonoid.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (forall (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b))) -> (forall (a : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1)))))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
+  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : AddMonoid.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (forall (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b))) -> (forall (a : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1)))))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.ring_hom_ext AddMonoidAlgebra.ringHom_extₓ'. -/
 /-- If two ring homomorphisms from `add_monoid_algebra k G` are equal on all `single a 1`
 and `single 0 b`, then they are equal. -/
@@ -2266,7 +2266,7 @@ def singleZeroAlgHom [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : CommSemiring.{u3} R] [_inst_2 : Semiring.{u1} k] [_inst_3 : Algebra.{u3, u1} R k _inst_1 _inst_2] [_inst_4 : AddMonoid.{u2} G], Eq.{max (succ u3) (succ u2) (succ u1)} ((fun (_x : RingHom.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) => R -> (AddMonoidAlgebra.{u1, u2} k G _inst_2)) (algebraMap.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u1, u2, u3} k G R _inst_1 _inst_2 _inst_3 _inst_4))) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ u3) (succ (max u2 u1))} (RingHom.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) (fun (_x : RingHom.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) => R -> (AddMonoidAlgebra.{u1, u2} k G _inst_2)) (RingHom.hasCoeToFun.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) (algebraMap.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u1, u2, u3} k G R _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u3, succ u1, max (succ u2) (succ u1)} R k (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_4)))))) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} R k (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} k _inst_2)) (fun (_x : RingHom.{u3, u1} R k (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} k _inst_2)) => R -> k) (RingHom.hasCoeToFun.{u3, u1} R k (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} k _inst_2)) (algebraMap.{u3, u1} R k _inst_1 _inst_2 _inst_3)))
 but is expected to have type
-  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Semiring.{u2} k] [_inst_3 : Algebra.{u1, u2} R k _inst_1 _inst_2] [_inst_4 : AddMonoid.{u3} G], Eq.{max (max (succ u2) (succ u3)) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => AddMonoidAlgebra.{u2, u3} k G _inst_2) a) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u1, max (succ u2) (succ u3)} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => AddMonoidAlgebra.{u2, u3} k G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u1, max u2 u3} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)))))) (algebraMap.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u2, u3, u1} k G R _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u1, succ u2, max (succ u3) (succ u2)} R k (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.single.{u2, u3} k G _inst_2 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_4)))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => k) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2))))) (algebraMap.{u1, u2} R k _inst_1 _inst_2 _inst_3)))
+  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Semiring.{u2} k] [_inst_3 : Algebra.{u1, u2} R k _inst_1 _inst_2] [_inst_4 : AddMonoid.{u3} G], Eq.{max (max (succ u2) (succ u3)) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => AddMonoidAlgebra.{u2, u3} k G _inst_2) a) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u1, max (succ u2) (succ u3)} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => AddMonoidAlgebra.{u2, u3} k G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u1, max u2 u3} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)))))) (algebraMap.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u2, u3, u1} k G R _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u1, succ u2, max (succ u3) (succ u2)} R k (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.single.{u2, u3} k G _inst_2 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_4)))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => k) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2))))) (algebraMap.{u1, u2} R k _inst_1 _inst_2 _inst_3)))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.coe_algebra_map AddMonoidAlgebra.coe_algebraMapₓ'. -/
 @[simp]
 theorem coe_algebraMap [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
@@ -2286,7 +2286,7 @@ variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [A
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : Multiplicative.{u2} G), Commute.{u4} B (Distrib.toHasMul.{u4} B (NonUnitalNonAssocSemiring.toDistrib.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (fun (_x : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) => A -> B) ([anonymous].{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) f x) (coeFn.{max (succ u4) (succ u2), max (succ u2) (succ u4)} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (fun (_x : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) => (Multiplicative.{u2} G) -> B) (MonoidHom.hasCoeToFun.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (AddMonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : Multiplicative.{u2} G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u2} G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (AddMonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : Multiplicative.{u2} G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u2} G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (AddMonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_alg_hom AddMonoidAlgebra.liftNCAlgHomₓ'. -/
 /-- `lift_nc_ring_hom` as a `alg_hom`, for when `f` is an `alg_hom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : Multiplicative G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
@@ -2366,7 +2366,7 @@ theorem lift_def (F : Multiplicative G →* A) :
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : Multiplicative.{u2} G), Eq.{succ u3} A (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) => (Multiplicative.{u2} G) -> A) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (coeFn.{max 1 (max (max (succ (max u2 u1)) (succ u3)) (succ u3) (succ u2)) (max (succ u3) (succ u2)) (succ (max u2 u1)) (succ u3), max (max (succ (max u2 u1)) (succ u3)) (succ u3) (succ u2)} (Equiv.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (fun (_x : Equiv.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) => (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) -> (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u3) (succ u2), max (succ (max u2 u1)) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) -> A) ([anonymous].{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) F (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (fun (_x : Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) => (Multiplicative.{u2} G) -> G) (Equiv.hasCoeToFun.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) x) (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))))))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : Multiplicative.{u2} G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u2} G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u2} G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (AddMonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Multiplicative.{u2} G) => G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) x) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : Multiplicative.{u2} G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u2} G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Multiplicative.{u2} G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (AddMonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Multiplicative.{u2} G) => G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) x) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_symm_apply AddMonoidAlgebra.lift_symm_applyₓ'. -/
 @[simp]
 theorem lift_symm_apply (F : AddMonoidAlgebra k G →ₐ[k] A) (x : Multiplicative G) :
@@ -2441,7 +2441,7 @@ end
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} {A : Type.{u3}} {H : Type.{u4}} {F : Type.{u5}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u1, u3} k A _inst_1 _inst_2] [_inst_4 : AddMonoid.{u2} G] [_inst_5 : AddMonoid.{u4} H] [_inst_6 : AddMonoidHomClass.{u5, u2, u4} F G H (AddMonoid.toAddZeroClass.{u2} G _inst_4) (AddMonoid.toAddZeroClass.{u4} H _inst_5)] (f : F) (r : k), Eq.{max (succ u4) (succ u3)} (Finsupp.{u4, u3} H A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))))) (Finsupp.mapDomain.{u2, u4, u3} G H A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))) (coeFn.{succ u5, max (succ u2) (succ u4)} F (fun (_x : F) => G -> H) (FunLike.hasCoeToFun.{succ u5, succ u2, succ u4} F G (fun (_x : G) => H) (AddHomClass.toFunLike.{u5, u2, u4} F G H (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_4)) (AddZeroClass.toHasAdd.{u4} H (AddMonoid.toAddZeroClass.{u4} H _inst_5)) (AddMonoidHomClass.toAddHomClass.{u5, u2, u4} F G H (AddMonoid.toAddZeroClass.{u2} G _inst_4) (AddMonoid.toAddZeroClass.{u4} H _inst_5) _inst_6))) f) (coeFn.{max (succ u1) (succ (max u2 u3)), max (succ u1) (succ (max u2 u3))} (RingHom.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (fun (_x : RingHom.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) => k -> (AddMonoidAlgebra.{u3, u2} A G _inst_2)) (RingHom.hasCoeToFun.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (algebraMap.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_2 _inst_3 _inst_4)) r)) (coeFn.{max (succ u1) (succ (max u4 u3)), max (succ u1) (succ (max u4 u3))} (RingHom.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u4 u3} (AddMonoidAlgebra.{u3, u4} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5))) (fun (_x : RingHom.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u4 u3} (AddMonoidAlgebra.{u3, u4} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5))) => k -> (AddMonoidAlgebra.{u3, u4} A H _inst_2)) (RingHom.hasCoeToFun.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u4 u3} (AddMonoidAlgebra.{u3, u4} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5))) (algebraMap.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5) (AddMonoidAlgebra.algebra.{u3, u4, u1} A H k _inst_1 _inst_2 _inst_3 _inst_5)) r)
 but is expected to have type
-  forall {k : Type.{u4}} {G : Type.{u5}} {A : Type.{u3}} {H : Type.{u2}} {F : Type.{u1}} [_inst_1 : CommSemiring.{u4} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u4, u3} k A _inst_1 _inst_2] [_inst_4 : AddMonoid.{u5} G] [_inst_5 : AddMonoid.{u2} H] [_inst_6 : AddMonoidHomClass.{u1, u5, u2} F G H (AddMonoid.toAddZeroClass.{u5} G _inst_4) (AddMonoid.toAddZeroClass.{u2} H _inst_5)] (f : F) (r : k), Eq.{max (succ u3) (succ u2)} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.mapDomain.{u3, u5, u2} A G _inst_2 H (FunLike.coe.{succ u1, succ u5, succ u2} F G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : G) => H) _x) (AddHomClass.toFunLike.{u1, u5, u2} F G H (AddZeroClass.toAdd.{u5} G (AddMonoid.toAddZeroClass.{u5} G _inst_4)) (AddZeroClass.toAdd.{u2} H (AddMonoid.toAddZeroClass.{u2} H _inst_5)) (AddMonoidHomClass.toAddHomClass.{u1, u5, u2} F G H (AddMonoid.toAddZeroClass.{u5} G _inst_4) (AddMonoid.toAddZeroClass.{u2} H _inst_5) _inst_6)) f) (FunLike.coe.{max (max (succ u4) (succ u5)) (succ u3), succ u4, max (succ u5) (succ u3)} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => AddMonoidAlgebra.{u3, u5} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)))))) (algebraMap.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u3, u5, u4} A G k _inst_1 _inst_2 _inst_3 _inst_4)) r)) (FunLike.coe.{max (max (succ u4) (succ u3)) (succ u2), succ u4, max (succ u3) (succ u2)} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => AddMonoidAlgebra.{u3, u2} A H _inst_2) _x) (MulHomClass.toFunLike.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)) (RingHom.instRingHomClassRingHom.{u4, max u3 u2} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)))))) (algebraMap.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5) (AddMonoidAlgebra.algebra.{u3, u2, u4} A H k _inst_1 _inst_2 _inst_3 _inst_5)) r)
+  forall {k : Type.{u4}} {G : Type.{u5}} {A : Type.{u3}} {H : Type.{u2}} {F : Type.{u1}} [_inst_1 : CommSemiring.{u4} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u4, u3} k A _inst_1 _inst_2] [_inst_4 : AddMonoid.{u5} G] [_inst_5 : AddMonoid.{u2} H] [_inst_6 : AddMonoidHomClass.{u1, u5, u2} F G H (AddMonoid.toAddZeroClass.{u5} G _inst_4) (AddMonoid.toAddZeroClass.{u2} H _inst_5)] (f : F) (r : k), Eq.{max (succ u3) (succ u2)} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.mapDomain.{u3, u5, u2} A G _inst_2 H (FunLike.coe.{succ u1, succ u5, succ u2} F G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : G) => H) _x) (AddHomClass.toFunLike.{u1, u5, u2} F G H (AddZeroClass.toAdd.{u5} G (AddMonoid.toAddZeroClass.{u5} G _inst_4)) (AddZeroClass.toAdd.{u2} H (AddMonoid.toAddZeroClass.{u2} H _inst_5)) (AddMonoidHomClass.toAddHomClass.{u1, u5, u2} F G H (AddMonoid.toAddZeroClass.{u5} G _inst_4) (AddMonoid.toAddZeroClass.{u2} H _inst_5) _inst_6)) f) (FunLike.coe.{max (max (succ u4) (succ u5)) (succ u3), succ u4, max (succ u5) (succ u3)} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => AddMonoidAlgebra.{u3, u5} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)))))) (algebraMap.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u3, u5, u4} A G k _inst_1 _inst_2 _inst_3 _inst_4)) r)) (FunLike.coe.{max (max (succ u4) (succ u3)) (succ u2), succ u4, max (succ u3) (succ u2)} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : k) => AddMonoidAlgebra.{u3, u2} A H _inst_2) _x) (MulHomClass.toFunLike.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)) (RingHom.instRingHomClassRingHom.{u4, max u3 u2} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)))))) (algebraMap.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5) (AddMonoidAlgebra.algebra.{u3, u2, u4} A H k _inst_1 _inst_2 _inst_3 _inst_5)) r)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.map_domain_algebra_map AddMonoidAlgebra.mapDomain_algebraMapₓ'. -/
 theorem mapDomain_algebraMap {A H F : Type _} [CommSemiring k] [Semiring A] [Algebra k A]
     [AddMonoid G] [AddMonoid H] [AddMonoidHomClass F G H] (f : F) (r : k) :
Diff
@@ -67,6 +67,7 @@ section
 
 variable [Semiring k]
 
+#print MonoidAlgebra /-
 /-- The monoid algebra over a semiring `k` generated by the monoid `G`.
 It is the type of finite formal `k`-linear combinations of terms of `G`,
 endowed with the convolution product.
@@ -74,6 +75,7 @@ endowed with the convolution product.
 def MonoidAlgebra : Type max u₁ u₂ :=
   G →₀ k deriving Inhabited, AddCommMonoid
 #align monoid_algebra MonoidAlgebra
+-/
 
 instance : CoeFun (MonoidAlgebra k G) fun _ => G → k :=
   Finsupp.coeFun
@@ -88,21 +90,33 @@ section
 
 variable [Semiring k] [NonUnitalNonAssocSemiring R]
 
+/- warning: monoid_algebra.lift_nc -> MonoidAlgebra.liftNC is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : NonUnitalNonAssocSemiring.{u3} R], (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) -> (G -> R) -> (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : NonUnitalNonAssocSemiring.{u3} R], (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) -> (G -> R) -> (AddMonoidHom.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u1, u2} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2))))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc MonoidAlgebra.liftNCₓ'. -/
 /-- A non-commutative version of `monoid_algebra.lift`: given a additive homomorphism `f : k →+ R`
 and a homomorphism `g : G → R`, returns the additive homomorphism from
 `monoid_algebra k G` such that `lift_nc f g (single a b) = f b * g a`. If `f` is a ring homomorphism
 and the range of either `f` or `g` is in center of `R`, then the result is a ring homomorphism.  If
 `R` is a `k`-algebra and `f = algebra_map k R`, then the result is an algebra homomorphism called
 `monoid_algebra.lift`. -/
-def liftNc (f : k →+ R) (g : G → R) : MonoidAlgebra k G →+ R :=
+def liftNC (f : k →+ R) (g : G → R) : MonoidAlgebra k G →+ R :=
   liftAddHom fun x : G => (AddMonoidHom.mulRight (g x)).comp f
-#align monoid_algebra.lift_nc MonoidAlgebra.liftNc
-
+#align monoid_algebra.lift_nc MonoidAlgebra.liftNC
+
+/- warning: monoid_algebra.lift_nc_single -> MonoidAlgebra.liftNC_single is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : NonUnitalNonAssocSemiring.{u3} R] (f : AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (g : G -> R) (a : G) (b : k), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 _inst_2 f g) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a b)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R _inst_2))) (coeFn.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (fun (_x : AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) => k -> R) (AddMonoidHom.hasCoeToFun.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) f b) (g a))
+but is expected to have type
+  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : NonUnitalNonAssocSemiring.{u1} R] (f : AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (g : G -> R) (a : G) (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 _inst_2 f g) (MonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) b) R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) b) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) b) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) b) _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddZeroClass.toAdd.{u2} k (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) f b) (g a))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_single 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 :=
+theorem liftNC_single (f : k →+ R) (g : G → R) (a : G) (b : k) :
+    liftNC f g (single a b) = f b * g a :=
   liftAddHom_apply_single _ _ _
-#align monoid_algebra.lift_nc_single MonoidAlgebra.liftNc_single
+#align monoid_algebra.lift_nc_single MonoidAlgebra.liftNC_single
 
 end
 
@@ -116,6 +130,12 @@ variable [Semiring k] [Mul G]
 instance : Mul (MonoidAlgebra k G) :=
   ⟨fun f g => f.Sum fun a₁ b₁ => g.Sum fun a₂ b₂ => single (a₁ * a₂) (b₁ * b₂)⟩
 
+/- warning: monoid_algebra.mul_def -> MonoidAlgebra.mul_def is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] {f : MonoidAlgebra.{u1, u2} k G _inst_1} {g : MonoidAlgebra.{u1, u2} k G _inst_1}, Eq.{succ (max u1 u2)} (MonoidAlgebra.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) f g) (Finsupp.sum.{u2, u1, max u1 u2} G k (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1) f (fun (a₁ : G) (b₁ : k) => Finsupp.sum.{u2, u1, max u1 u2} G k (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1) g (fun (a₂ : G) (b₂ : k) => Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) a₁ a₂) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) b₁ b₂))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] {f : MonoidAlgebra.{u1, u2} k G _inst_1} {g : MonoidAlgebra.{u1, u2} k G _inst_1}, Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) f g) (Finsupp.sum.{u2, u1, max u2 u1} G k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.addCommMonoid.{u1, u2} k G _inst_1) f (fun (a₁ : G) (b₁ : k) => Finsupp.sum.{u2, u1, max u2 u1} G k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.addCommMonoid.{u1, u2} k G _inst_1) g (fun (a₂ : G) (b₂ : k) => MonoidAlgebra.single.{u1, u2} k G _inst_1 (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) a₁ a₂) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) b₁ b₂))))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.mul_def 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₂) :=
   rfl
@@ -139,15 +159,21 @@ instance : NonUnitalNonAssocSemiring (MonoidAlgebra k G) :=
 
 variable [Semiring R]
 
-theorem liftNc_mul {g_hom : Type _} [MulHomClass g_hom G R] (f : k →+* R) (g : g_hom)
+/- warning: monoid_algebra.lift_nc_mul -> MonoidAlgebra.liftNC_mul is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] [_inst_3 : Semiring.{u3} R] {g_hom : Type.{u4}} [_inst_4 : MulHomClass.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : g_hom) (a : MonoidAlgebra.{u1, u2} k G _inst_1) (b : MonoidAlgebra.{u1, u2} k G _inst_1), (forall {x : G} {y : G}, (Membership.Mem.{u2, u2} G (Finset.{u2} G) (Finset.hasMem.{u2} G) y (Finsupp.support.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a)) -> (Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) b x)) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g y))) -> (Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) a) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_2 (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) b)))
+but is expected to have type
+  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Mul.{u4} G] [_inst_3 : Semiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : MulHomClass.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : g_hom) (a : MonoidAlgebra.{u3, u4} k G _inst_1) (b : MonoidAlgebra.{u3, u4} k G _inst_1), (forall {x : G} {y : G}, (Membership.mem.{u4, u4} G (Finset.{u4} G) (Finset.instMembershipFinset.{u4} G) y (Finsupp.support.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1)) a)) -> (Commute.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) _inst_3))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u3} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g y))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.mul.{u3, u4} k G _inst_1 _inst_2)) a b)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.mul.{u3, u4} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) a) _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) a) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_2 (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) b)))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_mul MonoidAlgebra.liftNC_mulₓ'. -/
+theorem liftNC_mul {g_hom : Type _} [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 :=
+    liftNC (f : k →+ R) g (a * b) = liftNC (f : k →+ R) g a * liftNC (f : k →+ R) g b :=
   by
   conv_rhs => rw [← sum_single a, ← sum_single b]
   simp_rw [mul_def, (lift_nc _ g).map_finsupp_sum, lift_nc_single, Finsupp.sum_mul, Finsupp.mul_sum]
   refine' Finset.sum_congr rfl fun y hy => Finset.sum_congr rfl fun x hx => _
   simp [mul_assoc, (h_comm hy).and_left_comm]
-#align monoid_algebra.lift_nc_mul MonoidAlgebra.liftNc_mul
+#align monoid_algebra.lift_nc_mul MonoidAlgebra.liftNC_mul
 
 end Mul
 
@@ -176,14 +202,26 @@ variable [NonAssocSemiring R] [Semiring k] [One G]
 instance : One (MonoidAlgebra k G) :=
   ⟨single 1 1⟩
 
+/- warning: monoid_algebra.one_def -> MonoidAlgebra.one_def is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_2 : Semiring.{u1} k] [_inst_3 : One.{u2} G], Eq.{succ (max u1 u2)} (MonoidAlgebra.{u1, u2} k G _inst_2) (OfNat.ofNat.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) 1 (OfNat.mk.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) 1 (One.one.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.one.{u1, u2} k G _inst_2 _inst_3)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G _inst_3))) (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2))))))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_2 : Semiring.{u1} k] [_inst_3 : One.{u2} G], Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G _inst_2) (OfNat.ofNat.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) 1 (One.toOfNat1.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.one.{u1, u2} k G _inst_2 _inst_3))) (MonoidAlgebra.single.{u1, u2} k G _inst_2 (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G _inst_3)) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_2))))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.one_def MonoidAlgebra.one_defₓ'. -/
 theorem one_def : (1 : MonoidAlgebra k G) = single 1 1 :=
   rfl
 #align monoid_algebra.one_def MonoidAlgebra.one_def
 
+/- warning: monoid_algebra.lift_nc_one -> MonoidAlgebra.liftNC_one is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : NonAssocSemiring.{u3} R] [_inst_2 : Semiring.{u1} k] [_inst_3 : One.{u2} G] {g_hom : Type.{u4}} [_inst_4 : OneHomClass.{u4, u2, u3} g_hom G R _inst_3 (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1)))] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (g : g_hom), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_2))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_1))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_2))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_1))))) => (MonoidAlgebra.{u1, u2} k G _inst_2) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_2))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_1))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_1) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1)))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1) k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1 (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_2) _inst_1))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => G -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom G (fun (_x : G) => R) (OneHomClass.toFunLike.{u4, u2, u3} g_hom G R _inst_3 (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))) _inst_4)) g)) (OfNat.ofNat.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) 1 (OfNat.mk.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) 1 (One.one.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.one.{u1, u2} k G _inst_2 _inst_3))))) (OfNat.ofNat.{u3} R 1 (OfNat.mk.{u3} R 1 (One.one.{u3} R (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_1))))))
+but is expected to have type
+  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : NonAssocSemiring.{u1} R] [_inst_2 : Semiring.{u3} k] [_inst_3 : One.{u4} G] {g_hom : Type.{u2}} [_inst_4 : OneHomClass.{u2, u4, u1} g_hom G R _inst_3 (NonAssocSemiring.toOne.{u1} R _inst_1)] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1) (g : g_hom), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (MonoidAlgebra.{u3, u4} k G _inst_2) (fun (_x : MonoidAlgebra.{u3, u4} k G _inst_2) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddZeroClass.toAdd.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))) (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (MonoidAlgebra.{u3, u4} k G _inst_2) R (AddMonoid.toAddZeroClass.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (AddCommMonoid.toAddMonoid.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_2))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1))))))) (MonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_1) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_2))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R _inst_1)))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1) k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1 (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_2) _inst_1)) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1254 : G) => R) _x) (OneHomClass.toFunLike.{u2, u4, u1} g_hom G R _inst_3 (NonAssocSemiring.toOne.{u1} R _inst_1) _inst_4) g)) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) 1 (One.toOfNat1.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) (NonAssocSemiring.toOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u3, u4} k G _inst_2) => R) (OfNat.ofNat.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) 1 (One.toOfNat1.{max u3 u4} (MonoidAlgebra.{u3, u4} k G _inst_2) (MonoidAlgebra.one.{u3, u4} k G _inst_2 _inst_3)))) _inst_1)))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_one MonoidAlgebra.liftNC_oneₓ'. -/
 @[simp]
-theorem liftNc_one {g_hom : Type _} [OneHomClass g_hom G R] (f : k →+* R) (g : g_hom) :
-    liftNc (f : k →+ R) g 1 = 1 := by simp [one_def]
-#align monoid_algebra.lift_nc_one MonoidAlgebra.liftNc_one
+theorem liftNC_one {g_hom : Type _} [OneHomClass g_hom G R] (f : k →+* R) (g : g_hom) :
+    liftNC (f : k →+ R) g 1 = 1 := by simp [one_def]
+#align monoid_algebra.lift_nc_one MonoidAlgebra.liftNC_one
 
 end One
 
@@ -207,6 +245,12 @@ instance : NonAssocSemiring (MonoidAlgebra k G) :=
       simp only [mul_def, one_def, sum_single_index, mul_zero, single_zero, sum_zero, add_zero,
         mul_one, sum_single] }
 
+/- warning: monoid_algebra.nat_cast_def -> MonoidAlgebra.nat_cast_def is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (n : Nat), Eq.{succ (max u1 u2)} (MonoidAlgebra.{u1, u2} k G _inst_1) ((fun (a : Type) (b : Type.{max u1 u2}) [self : HasLiftT.{1, succ (max u1 u2)} a b] => self.0) Nat (MonoidAlgebra.{u1, u2} k G _inst_1) (HasLiftT.mk.{1, succ (max u1 u2)} Nat (MonoidAlgebra.{u1, u2} k G _inst_1) (CoeTCₓ.coe.{1, succ (max u1 u2)} Nat (MonoidAlgebra.{u1, u2} k G _inst_1) (Nat.castCoe.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidWithOne.toNatCast.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toAddCommMonoidWithOne.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))))))) n) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat k (HasLiftT.mk.{1, succ u1} Nat k (CoeTCₓ.coe.{1, succ u1} Nat k (Nat.castCoe.{u1} k (AddMonoidWithOne.toNatCast.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) n))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (n : Nat), Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G _inst_1) (Nat.cast.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toNatCast.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)) n) (MonoidAlgebra.single.{u1, u2} k G _inst_1 (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G (MulOneClass.toOne.{u2} G _inst_2))) (Nat.cast.{u1} k (Semiring.toNatCast.{u1} k _inst_1) n))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.nat_cast_def MonoidAlgebra.nat_cast_defₓ'. -/
 theorem nat_cast_def (n : ℕ) : (n : MonoidAlgebra k G) = single 1 n :=
   rfl
 #align monoid_algebra.nat_cast_def MonoidAlgebra.nat_cast_def
@@ -230,14 +274,20 @@ instance : Semiring (MonoidAlgebra k G) :=
 
 variable [Semiring R]
 
+/- warning: monoid_algebra.lift_nc_ring_hom -> MonoidAlgebra.liftNCRingHom is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : G), Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f x) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => G -> R) (MonoidHom.hasCoeToFun.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g y)) -> (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : G), Commute.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) x) (NonUnitalNonAssocSemiring.toMul.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) x) (Semiring.toNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) x) _inst_3))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.instRingHomClassRingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) f x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => R) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G R (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} G R (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g y)) -> (RingHom.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_ring_hom MonoidAlgebra.liftNCRingHomₓ'. -/
 /-- `lift_nc` as a `ring_hom`, for when `f x` and `g y` commute -/
-def liftNcRingHom (f : k →+* R) (g : G →* R) (h_comm : ∀ x y, Commute (f x) (g y)) :
+def liftNCRingHom (f : k →+* R) (g : G →* R) (h_comm : ∀ x y, Commute (f x) (g y)) :
     MonoidAlgebra k G →+* R :=
-  { liftNc (f : k →+ R) g with
-    toFun := liftNc (f : k →+ R) g
-    map_one' := liftNc_one _ _
-    map_mul' := fun a b => liftNc_mul _ _ _ _ fun _ _ _ => h_comm _ _ }
-#align monoid_algebra.lift_nc_ring_hom MonoidAlgebra.liftNcRingHom
+  { liftNC (f : k →+ R) g with
+    toFun := liftNC (f : k →+ R) g
+    map_one' := liftNC_one _ _
+    map_mul' := fun a b => liftNC_mul _ _ _ _ fun _ _ _ => h_comm _ _ }
+#align monoid_algebra.lift_nc_ring_hom MonoidAlgebra.liftNCRingHom
 
 end Semiring
 
@@ -278,6 +328,12 @@ instance [Ring k] [MulOneClass G] : NonAssocRing (MonoidAlgebra k G) :=
     intCast_ofNat := fun n => by simpa
     intCast_negSucc := fun n => by simpa }
 
+/- warning: monoid_algebra.int_cast_def -> MonoidAlgebra.int_cast_def is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Ring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (z : Int), Eq.{succ (max u1 u2)} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) ((fun (a : Type) (b : Type.{max u1 u2}) [self : HasLiftT.{1, succ (max u1 u2)} a b] => self.0) Int (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (HasLiftT.mk.{1, succ (max u1 u2)} Int (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (CoeTCₓ.coe.{1, succ (max u1 u2)} Int (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (Int.castCoe.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (AddGroupWithOne.toHasIntCast.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (NonAssocRing.toAddGroupWithOne.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocRing.{u1, u2} k G _inst_1 _inst_2)))))) z) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (Ring.toSemiring.{u1} k _inst_1))))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int k (HasLiftT.mk.{1, succ u1} Int k (CoeTCₓ.coe.{1, succ u1} Int k (Int.castCoe.{u1} k (AddGroupWithOne.toHasIntCast.{u1} k (NonAssocRing.toAddGroupWithOne.{u1} k (Ring.toNonAssocRing.{u1} k _inst_1)))))) z))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Ring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (z : Int), Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (Int.cast.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (NonAssocRing.toIntCast.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocRing.{u1, u2} k G _inst_1 _inst_2)) z) (MonoidAlgebra.single.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1) (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G (MulOneClass.toOne.{u2} G _inst_2))) (Int.cast.{u1} k (Ring.toIntCast.{u1} k _inst_1) z))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.int_cast_def MonoidAlgebra.int_cast_defₓ'. -/
 theorem int_cast_def [Ring k] [MulOneClass G] (z : ℤ) : (z : MonoidAlgebra k G) = single 1 z :=
   rfl
 #align monoid_algebra.int_cast_def MonoidAlgebra.int_cast_def
@@ -321,11 +377,13 @@ instance [Monoid R] [Semiring k] [DistribMulAction R k] [DistribMulAction Rᵐ
     [IsCentralScalar R k] : IsCentralScalar R (MonoidAlgebra k G) :=
   Finsupp.isCentralScalar G k
 
+#print MonoidAlgebra.comapDistribMulActionSelf /-
 /-- This is not an instance as it conflicts with `monoid_algebra.distrib_mul_action` when `G = kˣ`.
 -/
 def comapDistribMulActionSelf [Group G] [Semiring k] : DistribMulAction G (MonoidAlgebra k G) :=
   Finsupp.comapDistribMulAction
 #align monoid_algebra.comap_distrib_mul_action_self MonoidAlgebra.comapDistribMulActionSelf
+-/
 
 end DerivedInstances
 
@@ -335,6 +393,12 @@ variable [Semiring k]
 
 attribute [local reducible] MonoidAlgebra
 
+/- warning: monoid_algebra.mul_apply -> MonoidAlgebra.mul_apply is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DecidableEq.{succ u2} G] [_inst_3 : Mul.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1) (x : G), Eq.{succ u1} k (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_3)) f g) x) (Finsupp.sum.{u2, u1, u1} G k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) f (fun (a₁ : G) (b₁ : k) => Finsupp.sum.{u2, u1, u1} G k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) g (fun (a₂ : G) (b₂ : k) => ite.{succ u1} k (Eq.{succ u2} G (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_3) a₁ a₂) x) (_inst_2 (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_3) a₁ a₂) x) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) b₁ b₂) (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DecidableEq.{succ u2} G] [_inst_3 : Mul.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_3)) f g) x) (Finsupp.sum.{u2, u1, u1} G k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) f (fun (a₁ : G) (b₁ : k) => Finsupp.sum.{u2, u1, u1} G k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) g (fun (a₂ : G) (b₂ : k) => ite.{succ u1} k (Eq.{succ u2} G (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_3) a₁ a₂) x) (_inst_2 (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_3) a₁ a₂) x) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) b₁ b₂) (OfNat.ofNat.{u1} k 0 (Zero.toOfNat0.{u1} k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))))))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.mul_apply 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 :=
   by
@@ -342,6 +406,12 @@ theorem mul_apply [DecidableEq G] [Mul G] (f g : MonoidAlgebra k G) (x : G) :
   simp only [Finsupp.sum_apply, single_apply]
 #align monoid_algebra.mul_apply MonoidAlgebra.mul_apply
 
+/- warning: monoid_algebra.mul_apply_antidiagonal -> MonoidAlgebra.mul_apply_antidiagonal is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1) (x : G) (s : Finset.{u2} (Prod.{u2, u2} G G)), (forall {p : Prod.{u2, u2} G G}, Iff (Membership.Mem.{u2, u2} (Prod.{u2, u2} G G) (Finset.{u2} (Prod.{u2, u2} G G)) (Finset.hasMem.{u2} (Prod.{u2, u2} G G)) p s) (Eq.{succ u2} G (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) (Prod.fst.{u2, u2} G G p) (Prod.snd.{u2, u2} G G p)) x)) -> (Eq.{succ u1} k (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) f g) x) (Finset.sum.{u1, u2} k (Prod.{u2, u2} G G) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) s (fun (p : Prod.{u2, u2} G G) => HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f (Prod.fst.{u2, u2} G G p)) (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) g (Prod.snd.{u2, u2} G G p)))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1) (x : G) (s : Finset.{u2} (Prod.{u2, u2} G G)), (forall {p : Prod.{u2, u2} G G}, Iff (Membership.mem.{u2, u2} (Prod.{u2, u2} G G) (Finset.{u2} (Prod.{u2, u2} G G)) (Finset.instMembershipFinset.{u2} (Prod.{u2, u2} G G)) p s) (Eq.{succ u2} G (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) (Prod.fst.{u2, u2} G G p) (Prod.snd.{u2, u2} G G p)) x)) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) f g) x) (Finset.sum.{u1, u2} k (Prod.{u2, u2} G G) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) s (fun (p : Prod.{u2, u2} G G) => HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.snd.{u2, u2} G G p)) ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) (instHMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f (Prod.fst.{u2, u2} G G p)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) g (Prod.snd.{u2, u2} G G p)))))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.mul_apply_antidiagonal MonoidAlgebra.mul_apply_antidiagonalₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem mul_apply_antidiagonal [Mul G] (f g : MonoidAlgebra k G) (x : G) (s : Finset (G × G))
@@ -369,6 +439,12 @@ theorem mul_apply_antidiagonal [Mul G] (f g : MonoidAlgebra k G) (x : G) (s : Fi
         
 #align monoid_algebra.mul_apply_antidiagonal MonoidAlgebra.mul_apply_antidiagonal
 
+/- warning: monoid_algebra.single_mul_single -> MonoidAlgebra.single_mul_single is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] {a₁ : G} {a₂ : G} {b₁ : k} {b₂ : k}, Eq.{succ (max u2 u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (instHMul.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a₁ b₁) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a₂ b₂)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) a₁ a₂) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) b₁ b₂))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] {a₁ : G} {a₂ : G} {b₁ : k} {b₂ : k}, Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) (MonoidAlgebra.single.{u1, u2} k G _inst_1 a₁ b₁) (MonoidAlgebra.single.{u1, u2} k G _inst_1 a₂ b₂)) (MonoidAlgebra.single.{u1, u2} k G _inst_1 (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) a₁ a₂) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) b₁ b₂))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_mul_single MonoidAlgebra.single_mul_singleₓ'. -/
 @[simp]
 theorem single_mul_single [Mul G] {a₁ a₂ : G} {b₁ b₂ : k} :
     (single a₁ b₁ : MonoidAlgebra k G) * single a₂ b₂ = single (a₁ * a₂) (b₁ * b₂) :=
@@ -376,6 +452,12 @@ theorem single_mul_single [Mul G] {a₁ a₂ : G} {b₁ b₂ : k} :
     (sum_single_index (by rw [mul_zero, single_zero]))
 #align monoid_algebra.single_mul_single MonoidAlgebra.single_mul_single
 
+/- warning: monoid_algebra.single_pow -> MonoidAlgebra.single_pow is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] {a : G} {b : k} (n : Nat), Eq.{succ (max u2 u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) Nat (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (instHPow.{max u2 u1, 0} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) Nat (Monoid.Pow.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (MonoidWithZero.toMonoid.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (MonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a b) n) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (HPow.hPow.{u2, 0, u2} G Nat G (instHPow.{u2, 0} G Nat (Monoid.Pow.{u2} G _inst_2)) a n) (HPow.hPow.{u1, 0, u1} k Nat k (instHPow.{u1, 0} k Nat (Monoid.Pow.{u1} k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) b n))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] {a : G} {b : k} (n : Nat), Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G _inst_1) (HPow.hPow.{max u1 u2, 0, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) Nat (MonoidAlgebra.{u1, u2} k G _inst_1) (instHPow.{max u1 u2, 0} (MonoidAlgebra.{u1, u2} k G _inst_1) Nat (Monoid.Pow.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))))) (MonoidAlgebra.single.{u1, u2} k G _inst_1 a b) n) (MonoidAlgebra.single.{u1, u2} k G _inst_1 (HPow.hPow.{u2, 0, u2} G Nat G (instHPow.{u2, 0} G Nat (Monoid.Pow.{u2} G _inst_2)) a n) (HPow.hPow.{u1, 0, u1} k Nat k (instHPow.{u1, 0} k Nat (Monoid.Pow.{u1} k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) b n))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_pow MonoidAlgebra.single_powₓ'. -/
 @[simp]
 theorem single_pow [Monoid G] {a : G} {b : k} :
     ∀ n : ℕ, (single a b : MonoidAlgebra k G) ^ n = single (a ^ n) (b ^ n)
@@ -387,6 +469,12 @@ theorem single_pow [Monoid G] {a : G} {b : k} :
 
 section
 
+/- warning: monoid_algebra.map_domain_one -> MonoidAlgebra.mapDomain_one is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {α₂ : Type.{u3}} [_inst_2 : Semiring.{u2} β] [_inst_3 : One.{u1} α] [_inst_4 : One.{u3} α₂] {F : Type.{u4}} [_inst_5 : OneHomClass.{u4, u1, u3} F α α₂ _inst_3 _inst_4] (f : F), Eq.{max (succ u3) (succ u2)} (Finsupp.{u3, u2} α₂ β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))))))) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (OneHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) (OfNat.ofNat.{max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) 1 (OfNat.mk.{max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) 1 (One.one.{max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) (MonoidAlgebra.one.{u2, u1} β α _inst_2 _inst_3))))) (OfNat.ofNat.{max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) 1 (OfNat.mk.{max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) 1 (One.one.{max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (MonoidAlgebra.one.{u2, u3} β α₂ _inst_2 _inst_4))))
+but is expected to have type
+  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : One.{u4} α] [_inst_4 : One.{u2} α₂] {F : Type.{u1}} [_inst_5 : OneHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1254 : α) => α₂) _x) (OneHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (OfNat.ofNat.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) 1 (One.toOfNat1.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.one.{u3, u4} β α _inst_2 _inst_3)))) (OfNat.ofNat.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) 1 (One.toOfNat1.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.one.{u3, u2} β α₂ _inst_2 _inst_4)))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.map_domain_one MonoidAlgebra.mapDomain_oneₓ'. -/
 /-- Like `finsupp.map_domain_zero`, but for the `1` we define in this file -/
 @[simp]
 theorem mapDomain_one {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [One α] [One α₂]
@@ -395,6 +483,12 @@ theorem mapDomain_one {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β]
   simp_rw [one_def, map_domain_single, map_one]
 #align monoid_algebra.map_domain_one MonoidAlgebra.mapDomain_one
 
+/- warning: monoid_algebra.map_domain_mul -> MonoidAlgebra.mapDomain_mul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {α₂ : Type.{u3}} [_inst_2 : Semiring.{u2} β] [_inst_3 : Mul.{u1} α] [_inst_4 : Mul.{u3} α₂] {F : Type.{u4}} [_inst_5 : MulHomClass.{u4, u1, u3} F α α₂ _inst_3 _inst_4] (f : F) (x : MonoidAlgebra.{u2, u1} β α _inst_2) (y : MonoidAlgebra.{u2, u1} β α _inst_2), Eq.{max (succ u3) (succ u2)} (Finsupp.{u3, u2} α₂ β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))))))) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (MulHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) (MonoidAlgebra.{u2, u1} β α _inst_2) (MonoidAlgebra.{u2, u1} β α _inst_2) (instHMul.{max u2 u1} (MonoidAlgebra.{u2, u1} β α _inst_2) (MonoidAlgebra.mul.{u2, u1} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (instHMul.{max u2 u3} (MonoidAlgebra.{u2, u3} β α₂ _inst_2) (MonoidAlgebra.mul.{u2, u3} β α₂ _inst_2 _inst_4)) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (MulHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) x) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (MulHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) y))
+but is expected to have type
+  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : Mul.{u4} α] [_inst_4 : Mul.{u2} α₂] {F : Type.{u1}} [_inst_5 : MulHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F) (x : MonoidAlgebra.{u3, u4} β α _inst_2) (y : MonoidAlgebra.{u3, u4} β α _inst_2), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (HMul.hMul.{max u4 u3, max u4 u3, max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.{u3, u4} β α _inst_2) (instHMul.{max u4 u3} (MonoidAlgebra.{u3, u4} β α _inst_2) (MonoidAlgebra.mul.{u3, u4} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u3 u2, max u3 u2, max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (instHMul.{max u3 u2} (MonoidAlgebra.{u3, u2} β α₂ _inst_2) (MonoidAlgebra.mul.{u3, u2} β α₂ _inst_2 _inst_4)) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) x) (MonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => α₂) _x) (MulHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) y))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.map_domain_mul MonoidAlgebra.mapDomain_mulₓ'. -/
 /-- Like `finsupp.map_domain_add`, but for the convolutive multiplication we define in this file -/
 theorem mapDomain_mul {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [Mul α] [Mul α₂]
     {F : Type _} [MulHomClass F α α₂] (f : F) (x y : MonoidAlgebra β α) :
@@ -414,6 +508,7 @@ theorem mapDomain_mul {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β]
 
 variable (k G)
 
+#print MonoidAlgebra.ofMagma /-
 /-- The embedding of a magma into its magma algebra. -/
 @[simps]
 def ofMagma [Mul G] : G →ₙ* MonoidAlgebra k G
@@ -421,7 +516,9 @@ def ofMagma [Mul G] : G →ₙ* MonoidAlgebra k G
   toFun a := single a 1
   map_mul' a b := by simp only [mul_def, mul_one, sum_single_index, single_eq_zero, mul_zero]
 #align monoid_algebra.of_magma MonoidAlgebra.ofMagma
+-/
 
+#print MonoidAlgebra.of /-
 /-- The embedding of a unital magma into its magma algebra. -/
 @[simps]
 def of [MulOneClass G] : G →* MonoidAlgebra k G :=
@@ -429,16 +526,35 @@ def of [MulOneClass G] : G →* MonoidAlgebra k G :=
     toFun := fun a => single a 1
     map_one' := rfl }
 #align monoid_algebra.of MonoidAlgebra.of
+-/
 
 end
 
+/- warning: monoid_algebra.smul_of -> MonoidAlgebra.smul_of is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (g : G) (r : k), Eq.{succ (max u1 u2)} (MonoidAlgebra.{u1, u2} k G _inst_1) (SMul.smul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) r (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => G -> (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) g)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) g r)
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (g : G) (r : k), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (instHSMul.{u1, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (SMulZeroClass.toSMul.{u1, max u1 u2} k ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (MulZeroOneClass.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) g) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G _inst_2) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) g)) (MonoidAlgebra.single.{u1, u2} k G _inst_1 g r)
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.smul_of MonoidAlgebra.smul_ofₓ'. -/
 theorem smul_of [MulOneClass G] (g : G) (r : k) : r • of k G g = single g r := by simp
 #align monoid_algebra.smul_of MonoidAlgebra.smul_of
 
+/- warning: monoid_algebra.of_injective -> MonoidAlgebra.of_injective is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Nontrivial.{u1} k], Function.Injective.{succ u2, succ (max u1 u2)} G (MonoidAlgebra.{u1, u2} k G _inst_1) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => G -> (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Nontrivial.{u1} k], Function.Injective.{succ u2, max (succ u1) (succ u2)} G (MonoidAlgebra.{u1, u2} k G _inst_1) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G _inst_2) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.of_injective MonoidAlgebra.of_injectiveₓ'. -/
 theorem of_injective [MulOneClass G] [Nontrivial k] : Function.Injective (of k G) := fun a b h => by
   simpa using (single_eq_single_iff _ _ _ _).mp h
 #align monoid_algebra.of_injective MonoidAlgebra.of_injective
 
+/- warning: monoid_algebra.single_hom -> MonoidAlgebra.singleHom is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G], MonoidHom.{max u1 u2, max u1 u2} (Prod.{u1, u2} k G) (MonoidAlgebra.{u1, u2} k G _inst_1) (Prod.mulOneClass.{u1, u2} k G (MulZeroOneClass.toMulOneClass.{u1} k (NonAssocSemiring.toMulZeroOneClass.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G], MonoidHom.{max u2 u1, max u2 u1} (Prod.{u1, u2} k G) (MonoidAlgebra.{u1, u2} k G _inst_1) (Prod.instMulOneClassProd.{u1, u2} k G (MulZeroOneClass.toMulOneClass.{u1} k (NonAssocSemiring.toMulZeroOneClass.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_hom MonoidAlgebra.singleHomₓ'. -/
 /-- `finsupp.single` as a `monoid_hom` from the product type into the monoid algebra.
 
 Note the order of the elements of the product are reversed compared to the arguments of
@@ -452,6 +568,12 @@ def singleHom [MulOneClass G] : k × G →* MonoidAlgebra k G
   map_mul' a b := single_mul_single.symm
 #align monoid_algebra.single_hom MonoidAlgebra.singleHom
 
+/- warning: monoid_algebra.mul_single_apply_aux -> MonoidAlgebra.mul_single_apply_aux is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) {r : k} {x : G} {y : G} {z : G}, (forall (a : G), Iff (Eq.{succ u2} G (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) a x) z) (Eq.{succ u2} G a y)) -> (Eq.{succ u1} k (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r)) z) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f y) r))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) {r : k} {x : G} {y : G} {z : G}, (forall (a : G), Iff (Eq.{succ u2} G (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) a x) z) (Eq.{succ u2} G a y)) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) z) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) f (MonoidAlgebra.single.{u1, u2} k G _inst_1 x r)) z) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (instHMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f y) r))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.mul_single_apply_aux 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 := by
   classical exact
@@ -468,11 +590,23 @@ theorem mul_single_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
         
 #align monoid_algebra.mul_single_apply_aux MonoidAlgebra.mul_single_apply_aux
 
+/- warning: monoid_algebra.mul_single_one_apply -> MonoidAlgebra.mul_single_one_apply is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G), Eq.{succ u1} k (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G _inst_2))) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) r)) x) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f x) r)
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u2 u1, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G _inst_2))) f (MonoidAlgebra.single.{u1, u2} k G _inst_1 (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G (MulOneClass.toOne.{u2} G _inst_2))) r)) x) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (instHMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f x) r)
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.mul_single_one_apply MonoidAlgebra.mul_single_one_applyₓ'. -/
 theorem mul_single_one_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x : G) :
     (f * single 1 r) x = f x * r :=
   f.mul_single_apply_aux fun a => by rw [mul_one]
 #align monoid_algebra.mul_single_one_apply MonoidAlgebra.mul_single_one_apply
 
+/- warning: monoid_algebra.single_mul_apply_aux -> MonoidAlgebra.single_mul_apply_aux is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) {r : k} {x : G} {y : G} {z : G}, (forall (a : G), Iff (Eq.{succ u2} G (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) x a) y) (Eq.{succ u2} G a z)) -> (Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (instHMul.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r) f) y) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) r (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f z)))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) {r : k} {x : G} {y : G} {z : G}, (forall (a : G), Iff (Eq.{succ u2} G (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G _inst_2) x a) y) (Eq.{succ u2} G a z)) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2)) (MonoidAlgebra.single.{u1, u2} k G _inst_1 x r) f) y) (HMul.hMul.{u1, u1, u1} k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) z) k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) r (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f z)))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_mul_apply_aux 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 := by
   classical exact
@@ -486,20 +620,32 @@ theorem single_mul_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
         
 #align monoid_algebra.single_mul_apply_aux MonoidAlgebra.single_mul_apply_aux
 
+/- warning: monoid_algebra.single_one_mul_apply -> MonoidAlgebra.single_one_mul_apply is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G), Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (instHMul.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G _inst_2))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) r) f) x) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) r (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f x))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G _inst_2))) (MonoidAlgebra.single.{u1, u2} k G _inst_1 (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G (MulOneClass.toOne.{u2} G _inst_2))) r) f) x) (HMul.hMul.{u1, u1, u1} k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) r (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f x))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_one_mul_apply MonoidAlgebra.single_one_mul_applyₓ'. -/
 theorem single_one_mul_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x : G) :
     (single 1 r * f) x = r * f x :=
   f.single_mul_apply_aux fun a => by rw [one_mul]
 #align monoid_algebra.single_one_mul_apply MonoidAlgebra.single_one_mul_apply
 
-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 φ :=
+/- warning: monoid_algebra.lift_nc_smul -> MonoidAlgebra.liftNC_smul is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] {R : Type.{u3}} [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u1, u2} k G _inst_1), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => G -> R) (MonoidHom.hasCoeToFun.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) (SMul.smul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) c φ)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f c) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (MonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => G -> R) (MonoidHom.hasCoeToFun.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) φ))
+but is expected to have type
+  forall {k : Type.{u2}} {G : Type.{u3}} [_inst_1 : Semiring.{u2} k] [_inst_2 : MulOneClass.{u3} G] {R : Type.{u1}} [_inst_3 : Semiring.{u1} R] (f : RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u2, u3} k G _inst_1), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MulZeroOneClass.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R (MulOneClass.toMul.{u3} G _inst_2) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MulZeroOneClass.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) φ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) _inst_3)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f c) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (MonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R (MulOneClass.toMul.{u3} G _inst_2) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) φ))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_smul 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 φ :=
   by
   suffices :
     (lift_nc (↑f) g).comp (smulAddHom k (MonoidAlgebra k G) c) =
       (AddMonoidHom.mulLeft (f c)).comp (lift_nc (↑f) g)
   exact AddMonoidHom.congr_fun this φ
   ext (a b); simp [mul_assoc]
-#align monoid_algebra.lift_nc_smul MonoidAlgebra.liftNc_smul
+#align monoid_algebra.lift_nc_smul MonoidAlgebra.liftNC_smul
 
 end MiscTheorems
 
@@ -510,6 +656,12 @@ section NonUnitalNonAssocAlgebra
 
 variable (k) [Semiring k] [DistribSMul R k] [Mul G]
 
+/- warning: monoid_algebra.is_scalar_tower_self -> MonoidAlgebra.isScalarTower_self is a dubious translation:
+lean 3 declaration is
+  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Mul.{u2} G] [_inst_4 : IsScalarTower.{u3, u1, u1} R k k (SMulZeroClass.toHasSmul.{u3, u1} R k (AddZeroClass.toHasZero.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)) (Mul.toSMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (SMulZeroClass.toHasSmul.{u3, u1} R k (AddZeroClass.toHasZero.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))], IsScalarTower.{u3, max u1 u2, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u3, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))) (Mul.toSMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_3)) (SMulZeroClass.toHasSmul.{u3, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)))
+but is expected to have type
+  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Mul.{u2} G] [_inst_4 : IsScalarTower.{u3, u1, u1} R k k (SMulZeroClass.toSMul.{u3, u1} R k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)) (SMulZeroClass.toSMul.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (SMulZeroClass.toSMul.{u3, u1} R k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))], IsScalarTower.{u3, max u2 u1, max u2 u1} R (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u3, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))) (SMulZeroClass.toSMul.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (SMulWithZero.toSMulZeroClass.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toSMulWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))))) (SMulZeroClass.toSMul.{u3, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.is_scalar_tower_self MonoidAlgebra.isScalarTower_selfₓ'. -/
 instance isScalarTower_self [IsScalarTower R k k] :
     IsScalarTower R (MonoidAlgebra k G) (MonoidAlgebra k G) :=
   ⟨fun t a b => by
@@ -519,6 +671,12 @@ instance isScalarTower_self [IsScalarTower R k k] :
         Pi.smul_apply, smul_zero]⟩
 #align monoid_algebra.is_scalar_tower_self MonoidAlgebra.isScalarTower_self
 
+/- warning: monoid_algebra.smul_comm_class_self -> MonoidAlgebra.sMulCommClass_self is a dubious translation:
+lean 3 declaration is
+  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Mul.{u2} G] [_inst_4 : SMulCommClass.{u3, u1, u1} R k k (SMulZeroClass.toHasSmul.{u3, u1} R k (AddZeroClass.toHasZero.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)) (Mul.toSMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))], SMulCommClass.{u3, max u1 u2, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u3, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))) (Mul.toSMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_3))
+but is expected to have type
+  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Mul.{u2} G] [_inst_4 : SMulCommClass.{u3, u1, u1} R k k (SMulZeroClass.toSMul.{u3, u1} R k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)) (SMulZeroClass.toSMul.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))], SMulCommClass.{u3, max u2 u1, max u2 u1} R (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u3, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))) (SMulZeroClass.toSMul.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (SMulWithZero.toSMulZeroClass.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toSMulWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.smul_comm_class_self MonoidAlgebra.sMulCommClass_selfₓ'. -/
 /-- Note that if `k` is a `comm_semiring` then we have `smul_comm_class k k k` and so we can take
 `R = k` in the below. In other words, if the coefficients are commutative amongst themselves, they
 also commute with the algebra multiplication. -/
@@ -532,6 +690,12 @@ instance sMulCommClass_self [SMulCommClass R k k] :
         mul_zero, smul_zero]⟩
 #align monoid_algebra.smul_comm_class_self MonoidAlgebra.sMulCommClass_self
 
+/- warning: monoid_algebra.smul_comm_class_symm_self -> MonoidAlgebra.sMulCommClass_symm_self is a dubious translation:
+lean 3 declaration is
+  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Mul.{u2} G] [_inst_4 : SMulCommClass.{u1, u3, u1} k R k (Mul.toSMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (SMulZeroClass.toHasSmul.{u3, u1} R k (AddZeroClass.toHasZero.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))], SMulCommClass.{max u1 u2, u3, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.{u1, u2} k G _inst_1) (Mul.toSMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_3)) (SMulZeroClass.toHasSmul.{u3, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)))
+but is expected to have type
+  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Mul.{u2} G] [_inst_4 : SMulCommClass.{u1, u3, u1} k R k (SMulZeroClass.toSMul.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (SMulZeroClass.toSMul.{u3, u1} R k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))], SMulCommClass.{max u2 u1, u3, max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (SMulWithZero.toSMulZeroClass.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toSMulWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))))) (SMulZeroClass.toSMul.{u3, max u1 u2} R (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.smul_comm_class_symm_self MonoidAlgebra.sMulCommClass_symm_selfₓ'. -/
 instance sMulCommClass_symm_self [SMulCommClass k R k] :
     SMulCommClass (MonoidAlgebra k G) R (MonoidAlgebra k G) :=
   ⟨fun t a b => by
@@ -541,6 +705,12 @@ instance sMulCommClass_symm_self [SMulCommClass k R k] :
 
 variable {A : Type u₃} [NonUnitalNonAssocSemiring A]
 
+/- warning: monoid_algebra.non_unital_alg_hom_ext -> MonoidAlgebra.nonUnitalAlgHom_ext is a dubious translation:
+lean 3 declaration is
+  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Mul.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (forall (x : G), Eq.{succ u3} A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₂ (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
+but is expected to have type
+  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Mul.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (forall (x : G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : MonoidAlgebra.{u1, u2} k G _inst_1) => A) (MonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : MonoidAlgebra.{u1, u2} k G _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ (MonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : MonoidAlgebra.{u1, u2} k G _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₂ (MonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1)))))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.non_unital_alg_hom_ext MonoidAlgebra.nonUnitalAlgHom_extₓ'. -/
 /-- A non_unital `k`-algebra homomorphism from `monoid_algebra k G` is uniquely defined by its
 values on the functions `single a 1`. -/
 theorem nonUnitalAlgHom_ext [DistribMulAction k A] {φ₁ φ₂ : MonoidAlgebra k G →ₙₐ[k] A}
@@ -549,6 +719,12 @@ theorem nonUnitalAlgHom_ext [DistribMulAction k A] {φ₁ φ₂ : MonoidAlgebra
     Finsupp.distribMulActionHom_ext' fun a => DistribMulActionHom.ext_ring (h a)
 #align monoid_algebra.non_unital_alg_hom_ext MonoidAlgebra.nonUnitalAlgHom_ext
 
+/- warning: monoid_algebra.non_unital_alg_hom_ext' -> MonoidAlgebra.nonUnitalAlgHom_ext' is a dubious translation:
+lean 3 declaration is
+  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Mul.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (Eq.{max (succ u3) (succ u2)} (MulHom.{u2, u3} G A _inst_3 (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4))) (MulHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G _inst_1) A _inst_3 (Distrib.toHasMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4)) (NonUnitalAlgHom.toMulHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5 φ₁) (MonoidAlgebra.ofMagma.{u1, u2} k G _inst_1 _inst_3)) (MulHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G _inst_1) A _inst_3 (Distrib.toHasMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4)) (NonUnitalAlgHom.toMulHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5 φ₂) (MonoidAlgebra.ofMagma.{u1, u2} k G _inst_1 _inst_3))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
+but is expected to have type
+  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Mul.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (Eq.{max (succ u2) (succ u3)} (MulHom.{u2, u3} G A _inst_3 (NonUnitalNonAssocSemiring.toMul.{u3} A _inst_4)) (MulHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G _inst_1) A _inst_3 (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)) (NonUnitalNonAssocSemiring.toMul.{u3} A _inst_4) (NonUnitalAlgHom.toMulHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5 φ₁) (MonoidAlgebra.ofMagma.{u1, u2} k G _inst_1 _inst_3)) (MulHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G _inst_1) A _inst_3 (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)) (NonUnitalNonAssocSemiring.toMul.{u3} A _inst_4) (NonUnitalAlgHom.toMulHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5 φ₂) (MonoidAlgebra.ofMagma.{u1, u2} k G _inst_1 _inst_3))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.non_unital_alg_hom_ext' MonoidAlgebra.nonUnitalAlgHom_ext'ₓ'. -/
 /-- See note [partially-applied ext lemmas]. -/
 @[ext]
 theorem nonUnitalAlgHom_ext' [DistribMulAction k A] {φ₁ φ₂ : MonoidAlgebra k G →ₙₐ[k] A}
@@ -556,6 +732,12 @@ theorem nonUnitalAlgHom_ext' [DistribMulAction k A] {φ₁ φ₂ : MonoidAlgebra
   nonUnitalAlgHom_ext k <| MulHom.congr_fun h
 #align monoid_algebra.non_unital_alg_hom_ext' MonoidAlgebra.nonUnitalAlgHom_ext'
 
+/- warning: monoid_algebra.lift_magma -> MonoidAlgebra.liftMagma is a dubious translation:
+lean 3 declaration is
+  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Mul.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : Module.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)] [_inst_6 : IsScalarTower.{u1, u3, u3} k A A (SMulZeroClass.toHasSmul.{u1, u3} k A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} k A (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4))) (SMulZeroClass.toHasSmul.{u1, u3} k A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} k A (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5))))] [_inst_7 : SMulCommClass.{u1, u3, u3} k A A (SMulZeroClass.toHasSmul.{u1, u3} k A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} k A (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4)))], Equiv.{max (succ u3) (succ u2), max (succ (max u1 u2)) (succ u3)} (MulHom.{u2, u3} G A _inst_3 (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4))) (NonUnitalAlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 (Module.toDistribMulAction.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5))
+but is expected to have type
+  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Mul.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : Module.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)] [_inst_6 : IsScalarTower.{u1, u3, u3} k A A (SMulZeroClass.toSMul.{u1, u3} k A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u1, u3} k A (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)))) (SMulZeroClass.toSMul.{u1, u3} k A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u1, u3} k A (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5))))] [_inst_7 : SMulCommClass.{u1, u3, u3} k A A (SMulZeroClass.toSMul.{u1, u3} k A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u1, u3} k A (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4))))], Equiv.{max (succ u3) (succ u2), max (succ u3) (succ (max u2 u1))} (MulHom.{u2, u3} G A _inst_3 (NonUnitalNonAssocSemiring.toMul.{u3} A _inst_4)) (NonUnitalAlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (MonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 (Module.toDistribMulAction.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_magma MonoidAlgebra.liftMagmaₓ'. -/
 /-- The functor `G ↦ monoid_algebra k G`, from the category of magmas to the category of non-unital,
 non-associative algebras over `k` is adjoint to the forgetful functor in the other direction. -/
 @[simps]
@@ -606,12 +788,19 @@ section Algebra
 
 attribute [local reducible] MonoidAlgebra
 
+/- warning: monoid_algebra.single_one_comm -> MonoidAlgebra.single_one_comm is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (r : k) (f : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)), Eq.{succ (max u2 u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (instHMul.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toHasMul.{u2} G _inst_2))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) r) f) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (instHMul.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toHasMul.{u2} G _inst_2))) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) r))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] (r : k) (f : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)), Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toMul.{u2} G _inst_2))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G (MulOneClass.toOne.{u2} G _inst_2))) r) f) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toMul.{u2} G _inst_2))) f (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G (MulOneClass.toOne.{u2} G _inst_2))) r))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_one_comm MonoidAlgebra.single_one_commₓ'. -/
 theorem single_one_comm [CommSemiring k] [MulOneClass G] (r : k) (f : MonoidAlgebra k G) :
     single 1 r * f = f * single 1 r := by
   ext
   rw [single_one_mul_apply, mul_single_one_apply, mul_comm]
 #align monoid_algebra.single_one_comm MonoidAlgebra.single_one_comm
 
+#print MonoidAlgebra.singleOneRingHom /-
 /-- `finsupp.single 1` as a `ring_hom` -/
 @[simps]
 def singleOneRingHom [Semiring k] [MulOneClass G] : k →+* MonoidAlgebra k G :=
@@ -619,7 +808,9 @@ def singleOneRingHom [Semiring k] [MulOneClass G] : k →+* MonoidAlgebra k G :=
     map_one' := rfl
     map_mul' := fun x y => by rw [single_add_hom, single_mul_single, one_mul] }
 #align monoid_algebra.single_one_ring_hom MonoidAlgebra.singleOneRingHom
+-/
 
+#print MonoidAlgebra.mapDomainRingHom /-
 /-- If `f : G → H` is a multiplicative homomorphism between two monoids, then
 `finsupp.map_domain f` is a ring homomorphism between their monoid algebras. -/
 @[simps]
@@ -632,7 +823,14 @@ def mapDomainRingHom (k : Type _) {H F : Type _} [Semiring k] [Monoid G] [Monoid
     map_one' := mapDomain_one f
     map_mul' := fun x y => mapDomain_mul f x y }
 #align monoid_algebra.map_domain_ring_hom MonoidAlgebra.mapDomainRingHom
+-/
 
+/- warning: monoid_algebra.ring_hom_ext -> MonoidAlgebra.ringHom_ext is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Semiring.{u3} R] {f : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)} {g : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)}, (forall (b : k), Eq.{succ u3} R (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) b)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G _inst_2)))) b))) -> (forall (a : G), Eq.{succ u3} R (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (MonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f g)
+but is expected to have type
+  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : MulOneClass.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (forall (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (MonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (MulOneClass.toOne.{u3} G _inst_2))) b))) -> (forall (a : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : MonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : MonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (MonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1)))))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.ring_hom_ext MonoidAlgebra.ringHom_extₓ'. -/
 /-- If two ring homomorphisms from `monoid_algebra k G` are equal on all `single a 1`
 and `single 1 b`, then they are equal. -/
 theorem ringHom_ext {R} [Semiring k] [MulOneClass G] [Semiring R] {f g : MonoidAlgebra k G →+* R}
@@ -644,6 +842,12 @@ theorem ringHom_ext {R} [Semiring k] [MulOneClass G] [Semiring R] {f g : MonoidA
         f.map_mul, g.map_mul, h₁, h_of]
 #align monoid_algebra.ring_hom_ext MonoidAlgebra.ringHom_ext
 
+/- warning: monoid_algebra.ring_hom_ext' -> MonoidAlgebra.ringHom_ext' is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : MulOneClass.{u2} G] [_inst_3 : Semiring.{u3} R] {f : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)} {g : RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)}, (Eq.{max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHom.comp.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3) f (MonoidAlgebra.singleOneRingHom.{u1, u2} k G _inst_1 _inst_2)) (RingHom.comp.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G _inst_1) R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3) g (MonoidAlgebra.singleOneRingHom.{u1, u2} k G _inst_1 _inst_2))) -> (Eq.{max (succ u3) (succ u2)} (MonoidHom.{u2, u3} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G _inst_1) R _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) ((fun (a : Sort.{max (succ (max u1 u2)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u1 u2))}) [self : HasLiftT.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} a b] => self.0) (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (HasLiftT.mk.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (CoeTCₓ.coe.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHom.hasCoeT.{max u1 u2, u3, max (max u1 u2) u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2)) (MonoidHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G _inst_1) R _inst_2 (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) ((fun (a : Sort.{max (succ (max u1 u2)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u1 u2))}) [self : HasLiftT.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} a b] => self.0) (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (HasLiftT.mk.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (CoeTCₓ.coe.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHom.hasCoeT.{max u1 u2, u3, max (max u1 u2) u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g) (MonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f g)
+but is expected to have type
+  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : MulOneClass.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (Eq.{max (succ u2) (succ u1)} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHom.comp.{u2, max u2 u3, u1} k (MonoidAlgebra.{u2, u3} k G _inst_1) R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) f (MonoidAlgebra.singleOneRingHom.{u2, u3} k G _inst_1 _inst_2)) (RingHom.comp.{u2, max u2 u3, u1} k (MonoidAlgebra.{u2, u3} k G _inst_1) R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) g (MonoidAlgebra.singleOneRingHom.{u2, u3} k G _inst_1 _inst_2))) -> (Eq.{max (succ u3) (succ u1)} (MonoidHom.{u3, u1} G R _inst_2 (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHom.comp.{u3, max u2 u3, u1} G (MonoidAlgebra.{u2, u3} k G _inst_1) R _inst_2 (MulZeroOneClass.toMulOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHomClass.toMonoidHom.{max u2 u3, u1, max (max u2 u3) u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MulZeroOneClass.toMulOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (MonoidAlgebra.of.{u2, u3} k G _inst_1 _inst_2)) (MonoidHom.comp.{u3, max u2 u3, u1} G (MonoidAlgebra.{u2, u3} k G _inst_1) R _inst_2 (MulZeroOneClass.toMulOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHomClass.toMonoidHom.{max u2 u3, u1, max (max u2 u3) u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MulZeroOneClass.toMulOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) g) (MonoidAlgebra.of.{u2, u3} k G _inst_1 _inst_2))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (MonoidAlgebra.{u2, u3} k G _inst_1) R (MonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.ring_hom_ext' MonoidAlgebra.ringHom_ext'ₓ'. -/
 /-- If two ring homomorphisms from `monoid_algebra k G` are equal on all `single a 1`
 and `single 1 b`, then they are equal.
 
@@ -674,6 +878,7 @@ instance {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G] :
       ext
       simp [single_one_mul_apply, mul_single_one_apply, Algebra.commutes] }
 
+#print MonoidAlgebra.singleOneAlgHom /-
 /-- `finsupp.single 1` as a `alg_hom` -/
 @[simps]
 def singleOneAlgHom {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G] :
@@ -684,22 +889,47 @@ def singleOneAlgHom {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Mo
       simp
       rfl }
 #align monoid_algebra.single_one_alg_hom MonoidAlgebra.singleOneAlgHom
+-/
 
+/- warning: monoid_algebra.coe_algebra_map -> MonoidAlgebra.coe_algebraMap is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {A : Type.{u3}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u1, u3} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u2} G], Eq.{max (succ u1) (succ (max u3 u2))} (k -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (coeFn.{max (succ u1) (succ (max u3 u2)), max (succ u1) (succ (max u3 u2))} (RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (fun (_x : RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) => k -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (RingHom.hasCoeToFun.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (algebraMap.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u1, succ u3, max (succ u2) (succ u3)} k A (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.single.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2)))) (OfNat.ofNat.{u2} G 1 (OfNat.mk.{u2} G 1 (One.one.{u2} G (MulOneClass.toHasOne.{u2} G (Monoid.toMulOneClass.{u2} G _inst_4)))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (fun (_x : RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) => k -> A) (RingHom.hasCoeToFun.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (algebraMap.{u1, u3} k A _inst_1 _inst_2 _inst_3)))
+but is expected to have type
+  forall {k : Type.{u2}} {G : Type.{u3}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} k] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u3} G], Eq.{max (max (succ u2) (succ u3)) (succ u1)} (forall (ᾰ : k), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) ᾰ) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u2, max (succ u3) (succ u1)} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u2, u3, u1} k G A _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u2, succ u1, max (succ u3) (succ u1)} k A (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.single.{u1, u3} A G _inst_2 (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (Monoid.toOne.{u3} G _inst_4)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (algebraMap.{u2, u1} k A _inst_1 _inst_2 _inst_3)))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.coe_algebra_map 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 :=
   rfl
 #align monoid_algebra.coe_algebra_map MonoidAlgebra.coe_algebraMap
 
+/- warning: monoid_algebra.single_eq_algebra_map_mul_of -> MonoidAlgebra.single_eq_algebraMap_mul_of is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] (a : G) (b : k), Eq.{max (succ u2) (succ u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) a b) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (instHMul.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (coeFn.{max (succ u1) (succ (max u1 u2)), max (succ u1) (succ (max u1 u2))} (RingHom.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (fun (_x : RingHom.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) => k -> (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1))) (RingHom.hasCoeToFun.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (algebraMap.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) b) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) => G -> (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) a))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] (a : G) (b : k), Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) a b) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) (instHMul.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) b) (MonoidAlgebra.mul.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, max u1 u2} (RingHom.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (RingHom.instRingHomClassRingHom.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (algebraMap.{u1, max u2 u1} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) b) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) a))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_eq_algebra_map_mul_of 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 := by simp
 #align monoid_algebra.single_eq_algebra_map_mul_of MonoidAlgebra.single_eq_algebraMap_mul_of
 
+/- warning: monoid_algebra.single_algebra_map_eq_algebra_map_mul_of -> MonoidAlgebra.single_algebraMap_eq_algebraMap_mul_of is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {A : Type.{u3}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u1, u3} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u2} G] (a : G) (b : k), Eq.{max (succ u2) (succ u3)} (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.single.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2)))) a (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (fun (_x : RingHom.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) => k -> A) (RingHom.hasCoeToFun.{u1, u3} k A (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{u3} A _inst_2)) (algebraMap.{u1, u3} k A _inst_1 _inst_2 _inst_3) b)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (instHMul.{max u2 u3} (Finsupp.{u2, u3} G A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))) (MonoidAlgebra.mul.{u3, u2} A G _inst_2 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_4)))) (coeFn.{max (succ u1) (succ (max u3 u2)), max (succ u1) (succ (max u3 u2))} (RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (fun (_x : RingHom.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) => k -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (RingHom.hasCoeToFun.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (algebraMap.{u1, max u3 u2} k (MonoidAlgebra.{u3, u2} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_2 _inst_3 _inst_4)) b) (coeFn.{max (succ (max u3 u2)) (succ u2), max (succ u2) (succ (max u3 u2))} (MonoidHom.{u2, max u3 u2} G (MonoidAlgebra.{u3, u2} A G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4))))) (fun (_x : MonoidHom.{u2, max u3 u2} G (MonoidAlgebra.{u3, u2} A G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4))))) => G -> (MonoidAlgebra.{u3, u2} A G _inst_2)) (MonoidHom.hasCoeToFun.{u2, max u3 u2} G (MonoidAlgebra.{u3, u2} A G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u3 u2} (MonoidAlgebra.{u3, u2} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4))))) (MonoidAlgebra.of.{u3, u2} A G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_4)) a))
+but is expected to have type
+  forall {k : Type.{u2}} {G : Type.{u3}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u2} k] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} k A _inst_1 _inst_2] [_inst_4 : Monoid.{u3} G] (a : G) (b : k), Eq.{max (succ u3) (succ u1)} (MonoidAlgebra.{u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => A) b) G _inst_2) (MonoidAlgebra.single.{u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => A) b) G _inst_2 a (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => A) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2)) k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2) (RingHom.instRingHomClassRingHom.{u2, u1} k A (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{u1} A _inst_2))))) (algebraMap.{u2, u1} k A _inst_1 _inst_2 _inst_3) b)) (HMul.hMul.{max u3 u1, max u3 u1, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u3} A G _inst_2) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) (instHMul.{max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) b) (MonoidAlgebra.mul.{u1, u3} A G _inst_2 (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G _inst_4)))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u2, max (succ u3) (succ u1)} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u2, max u3 u1} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4))) k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4)))))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u1, u3} A G _inst_2) _inst_1 (MonoidAlgebra.semiring.{u1, u3} A G _inst_2 _inst_4) (MonoidAlgebra.algebra.{u2, u3, u1} k G A _inst_1 _inst_2 _inst_3 _inst_4)) b) (FunLike.coe.{max (succ u3) (succ u1), succ u3, max (succ u3) (succ u1)} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u3} A G _inst_2) _x) (MulHomClass.toFunLike.{max u3 u1, u3, max u3 u1} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (MonoidAlgebra.{u1, u3} A G _inst_2) (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G _inst_4)) (MulOneClass.toMul.{max u3 u1} (MonoidAlgebra.{u1, u3} A G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, max u3 u1} (MonoidHom.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))) G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4)))) (MonoidHom.monoidHomClass.{u3, max u3 u1} G (MonoidAlgebra.{u1, u3} A G _inst_2) (Monoid.toMulOneClass.{u3} G _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u3} (MonoidAlgebra.{u1, u3} A G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4))))))) (MonoidAlgebra.of.{u1, u3} A G _inst_2 (Monoid.toMulOneClass.{u3} G _inst_4)) a))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_algebra_map_eq_algebra_map_mul_of 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 := by simp
 #align monoid_algebra.single_algebra_map_eq_algebra_map_mul_of MonoidAlgebra.single_algebraMap_eq_algebraMap_mul_of
 
+/- warning: monoid_algebra.induction_on -> MonoidAlgebra.induction_on is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] {p : (MonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : MonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) => G -> (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) g)) -> (forall (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Finsupp.add.{u2, u1} G k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) f g))) -> (forall (r : k) (f : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (SMul.smul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) r f))) -> (p f)
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] {p : (MonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : MonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G _inst_1 (Monoid.toMulOneClass.{u2} G _inst_2)) g)) -> (forall (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : MonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r f))) -> (p f)
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.induction_on 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 :=
@@ -718,23 +948,37 @@ variable {k G} [CommSemiring k] [Monoid G]
 
 variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [Algebra k B]
 
+/- warning: monoid_algebra.lift_nc_alg_hom -> MonoidAlgebra.liftNCAlgHom is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : G), Commute.{u4} B (Distrib.toHasMul.{u4} B (NonUnitalNonAssocSemiring.toDistrib.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (fun (_x : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) => A -> B) ([anonymous].{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) f x) (coeFn.{max (succ u4) (succ u2), max (succ u2) (succ u4)} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (fun (_x : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) => G -> B) (MonoidHom.hasCoeToFun.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) g y)) -> (AlgHom.{u1, max u3 u2, u4} k (MonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} G B (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (MonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (MonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (MonoidAlgebra.algebra.{u1, u2, u3} k G A _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_nc_alg_hom MonoidAlgebra.liftNCAlgHomₓ'. -/
 /-- `lift_nc_ring_hom` as a `alg_hom`, for when `f` is an `alg_hom` -/
-def liftNcAlgHom (f : A →ₐ[k] B) (g : G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
+def liftNCAlgHom (f : A →ₐ[k] B) (g : G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
     MonoidAlgebra A G →ₐ[k] B :=
   {
-    liftNcRingHom (f : A →+* B) g
+    liftNCRingHom (f : A →+* B) g
       h_comm with
-    toFun := liftNcRingHom (f : A →+* B) g h_comm
+    toFun := liftNCRingHom (f : A →+* B) g h_comm
     commutes' := by simp [lift_nc_ring_hom] }
-#align monoid_algebra.lift_nc_alg_hom MonoidAlgebra.liftNcAlgHom
+#align monoid_algebra.lift_nc_alg_hom MonoidAlgebra.liftNCAlgHom
 
+#print MonoidAlgebra.algHom_ext /-
 /-- A `k`-algebra homomorphism from `monoid_algebra k G` is uniquely defined by its
 values on the functions `single a 1`. -/
 theorem algHom_ext ⦃φ₁ φ₂ : MonoidAlgebra k G →ₐ[k] A⦄
     (h : ∀ x, φ₁ (single x 1) = φ₂ (single x 1)) : φ₁ = φ₂ :=
   AlgHom.toLinearMap_injective <| Finsupp.lhom_ext' fun a => LinearMap.ext_ring (h a)
 #align monoid_algebra.alg_hom_ext MonoidAlgebra.algHom_ext
+-/
 
+/- warning: monoid_algebra.alg_hom_ext' -> MonoidAlgebra.algHom_ext' is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {{φ₁ : AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4}} {{φ₂ : AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4}}, (Eq.{max (succ u3) (succ u2)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) ((fun (a : Sort.{max (succ (max u1 u2)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u1 u2))}) [self : HasLiftT.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} a b] => self.0) (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (HasLiftT.mk.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (CoeTCₓ.coe.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHom.hasCoeT.{max u1 u2, u3, max (max u1 u2) u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} A _inst_3) (AlgHomClass.toRingHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.algHomClass.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4)))))) φ₁) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))) (MonoidHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) ((fun (a : Sort.{max (succ (max u1 u2)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u1 u2))}) [self : HasLiftT.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} a b] => self.0) (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (HasLiftT.mk.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (CoeTCₓ.coe.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHom.hasCoeT.{max u1 u2, u3, max (max u1 u2) u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} A _inst_3) (AlgHomClass.toRingHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.algHomClass.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4)))))) φ₂) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) φ₁ φ₂)
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {{φ₁ : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4}} {{φ₂ : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4}}, (Eq.{max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHomClass.toMonoidHom.{max u1 u2, u3, max (max u1 u2) u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} A _inst_3) (AlgHomClass.toRingHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.algHomClass.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))) φ₁) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))) (MonoidHom.comp.{u2, max u1 u2, u3} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHomClass.toMonoidHom.{max u1 u2, u3, max (max u1 u2) u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} A _inst_3) (AlgHomClass.toRingHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.algHomClass.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))) φ₂) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) φ₁ φ₂)
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.alg_hom_ext' MonoidAlgebra.algHom_ext'ₓ'. -/
 /-- See note [partially-applied ext lemmas]. -/
 @[ext]
 theorem algHom_ext' ⦃φ₁ φ₂ : MonoidAlgebra k G →ₐ[k] A⦄
@@ -746,12 +990,13 @@ theorem algHom_ext' ⦃φ₁ φ₂ : MonoidAlgebra k G →ₐ[k] A⦄
 
 variable (k G A)
 
+#print MonoidAlgebra.lift /-
 /-- Any monoid homomorphism `G →* A` can be lifted to an algebra homomorphism
 `monoid_algebra k G →ₐ[k] A`. -/
 def lift : (G →* A) ≃ (MonoidAlgebra k G →ₐ[k] A)
     where
   invFun f := (f : MonoidAlgebra k G →* A).comp (of k G)
-  toFun F := liftNcAlgHom (Algebra.ofId k A) F fun _ _ => Algebra.commutes _ _
+  toFun F := liftNCAlgHom (Algebra.ofId k A) F fun _ _ => Algebra.commutes _ _
   left_inv f := by
     ext
     simp [lift_nc_alg_hom, lift_nc_ring_hom]
@@ -759,42 +1004,62 @@ def lift : (G →* A) ≃ (MonoidAlgebra k G →ₐ[k] A)
     ext
     simp [lift_nc_alg_hom, lift_nc_ring_hom]
 #align monoid_algebra.lift MonoidAlgebra.lift
+-/
 
 variable {k G A}
 
+#print 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 :=
   rfl
 #align monoid_algebra.lift_apply' MonoidAlgebra.lift_apply'
+-/
 
+#print 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 := by simp only [lift_apply', Algebra.smul_def]
 #align monoid_algebra.lift_apply MonoidAlgebra.lift_apply
+-/
 
-theorem lift_def (F : G →* A) : ⇑(lift k G A F) = liftNc ((algebraMap k A : k →+* A) : k →+ A) F :=
+#print MonoidAlgebra.lift_def /-
+theorem lift_def (F : G →* A) : ⇑(lift k G A F) = liftNC ((algebraMap k A : k →+* A) : k →+ A) F :=
   rfl
 #align monoid_algebra.lift_def MonoidAlgebra.lift_def
+-/
 
+/- warning: monoid_algebra.lift_symm_apply -> MonoidAlgebra.lift_symm_apply is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : G), Eq.{succ u3} A (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (fun (_x : MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) => G -> A) (MonoidHom.hasCoeToFun.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ u3) (succ u2)) (max (succ u3) (succ u2)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ u3) (succ u2)} (Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) => (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) -> (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u3) (succ u2), max (succ (max u1 u2)) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) -> A) ([anonymous].{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) F (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) x (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} G A (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.lift_symm_apply 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) :=
   rfl
 #align monoid_algebra.lift_symm_apply MonoidAlgebra.lift_symm_apply
 
+#print MonoidAlgebra.lift_of /-
 theorem lift_of (F : G →* A) (x) : lift k G A F (of k G x) = F x := by
   rw [of_apply, ← lift_symm_apply, Equiv.symm_apply_apply]
 #align monoid_algebra.lift_of MonoidAlgebra.lift_of
+-/
 
+#print MonoidAlgebra.lift_single /-
 @[simp]
 theorem lift_single (F : G →* A) (a b) : lift k G A F (single a b) = b • F a := by
   rw [lift_def, lift_nc_single, Algebra.smul_def, [anonymous]]
 #align monoid_algebra.lift_single MonoidAlgebra.lift_single
+-/
 
+#print 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)) :=
   ((lift k G A).apply_symm_apply F).symm
 #align monoid_algebra.lift_unique' MonoidAlgebra.lift_unique'
+-/
 
+#print MonoidAlgebra.lift_unique /-
 /-- Decomposition of a `k`-algebra homomorphism from `monoid_algebra k G` by
 its values on `F (single a 1)`. -/
 theorem lift_unique (F : MonoidAlgebra k G →ₐ[k] A) (f : MonoidAlgebra k G) :
@@ -803,7 +1068,9 @@ theorem lift_unique (F : MonoidAlgebra k G →ₐ[k] A) (f : MonoidAlgebra k G)
     rw [lift_unique' F]
     simp [lift_apply]
 #align monoid_algebra.lift_unique MonoidAlgebra.lift_unique
+-/
 
+#print MonoidAlgebra.mapDomainNonUnitalAlgHom /-
 /-- If `f : G → H` is a homomorphism between two magmas, then
 `finsupp.map_domain f` is a non-unital algebra homomorphism between their magma algebras. -/
 @[simps]
@@ -817,13 +1084,21 @@ def mapDomainNonUnitalAlgHom (k A : Type _) [CommSemiring k] [Semiring A] [Algeb
     map_mul' := fun x y => mapDomain_mul f x y
     map_smul' := fun r x => mapDomain_smul r x }
 #align monoid_algebra.map_domain_non_unital_alg_hom MonoidAlgebra.mapDomainNonUnitalAlgHom
+-/
 
+/- warning: monoid_algebra.map_domain_algebra_map -> MonoidAlgebra.mapDomain_algebraMap is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Monoid.{u1} G] (k : Type.{u2}) (A : Type.{u3}) {H : Type.{u4}} {F : Type.{u5}} [_inst_7 : CommSemiring.{u2} k] [_inst_8 : Semiring.{u3} A] [_inst_9 : Algebra.{u2, u3} k A _inst_7 _inst_8] [_inst_10 : Monoid.{u4} H] [_inst_11 : MonoidHomClass.{u5, u1, u4} F G H (Monoid.toMulOneClass.{u1} G _inst_2) (Monoid.toMulOneClass.{u4} H _inst_10)] (f : F) (r : k), Eq.{max (succ u4) (succ u3)} (Finsupp.{u4, u3} H A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_8))))))) (Finsupp.mapDomain.{u1, u4, u3} G H A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_8))) (coeFn.{succ u5, max (succ u1) (succ u4)} F (fun (_x : F) => G -> H) (FunLike.hasCoeToFun.{succ u5, succ u1, succ u4} F G (fun (_x : G) => H) (MulHomClass.toFunLike.{u5, u1, u4} F G H (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G _inst_2)) (MulOneClass.toHasMul.{u4} H (Monoid.toMulOneClass.{u4} H _inst_10)) (MonoidHomClass.toMulHomClass.{u5, u1, u4} F G H (Monoid.toMulOneClass.{u1} G _inst_2) (Monoid.toMulOneClass.{u4} H _inst_10) _inst_11))) f) (coeFn.{max (succ u2) (succ (max u3 u1)), max (succ u2) (succ (max u3 u1))} (RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u3, u1} A G _inst_8) (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2))) (fun (_x : RingHom.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u3, u1} A G _inst_8) (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2))) => k -> (MonoidAlgebra.{u3, u1} A G _inst_8)) (RingHom.hasCoeToFun.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u1} (MonoidAlgebra.{u3, u1} A G _inst_8) (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2))) (algebraMap.{u2, max u3 u1} k (MonoidAlgebra.{u3, u1} A G _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u1} A G _inst_8 _inst_2) (MonoidAlgebra.algebra.{u2, u1, u3} k G A _inst_7 _inst_8 _inst_9 _inst_2)) r)) (coeFn.{max (succ u2) (succ (max u3 u4)), max (succ u2) (succ (max u3 u4))} (RingHom.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u4} (MonoidAlgebra.{u3, u4} A H _inst_8) (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10))) (fun (_x : RingHom.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u4} (MonoidAlgebra.{u3, u4} A H _inst_8) (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10))) => k -> (MonoidAlgebra.{u3, u4} A H _inst_8)) (RingHom.hasCoeToFun.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) (Semiring.toNonAssocSemiring.{u2} k (CommSemiring.toSemiring.{u2} k _inst_7)) (Semiring.toNonAssocSemiring.{max u3 u4} (MonoidAlgebra.{u3, u4} A H _inst_8) (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10))) (algebraMap.{u2, max u3 u4} k (MonoidAlgebra.{u3, u4} A H _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u4} A H _inst_8 _inst_10) (MonoidAlgebra.algebra.{u2, u4, u3} k H A _inst_7 _inst_8 _inst_9 _inst_10)) r)
+but is expected to have type
+  forall {G : Type.{u5}} [_inst_2 : Monoid.{u5} G] (k : Type.{u4}) (A : Type.{u3}) {H : Type.{u2}} {F : Type.{u1}} [_inst_7 : CommSemiring.{u4} k] [_inst_8 : Semiring.{u3} A] [_inst_9 : Algebra.{u4, u3} k A _inst_7 _inst_8] [_inst_10 : Monoid.{u2} H] [_inst_11 : MonoidHomClass.{u1, u5, u2} F G H (Monoid.toMulOneClass.{u5} G _inst_2) (Monoid.toMulOneClass.{u2} H _inst_10)] (f : F) (r : k), Eq.{max (succ u3) (succ u2)} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.mapDomain.{u3, u5, u2} A G _inst_8 H (FunLike.coe.{succ u1, succ u5, succ u2} F G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) _x) (MulHomClass.toFunLike.{u1, u5, u2} F G H (MulOneClass.toMul.{u5} G (Monoid.toMulOneClass.{u5} G _inst_2)) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H _inst_10)) (MonoidHomClass.toMulHomClass.{u1, u5, u2} F G H (Monoid.toMulOneClass.{u5} G _inst_2) (Monoid.toMulOneClass.{u2} H _inst_10) _inst_11)) f) (FunLike.coe.{max (max (succ u5) (succ u4)) (succ u3), succ u4, max (succ u5) (succ u3)} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u3, u5} A G _inst_8) _x) (MulHomClass.toFunLike.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)))) (NonUnitalNonAssocSemiring.toMul.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) (RingHomClass.toNonUnitalRingHomClass.{max (max u5 u4) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2))) k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)) (RingHom.instRingHomClassRingHom.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u5 u3} (MonoidAlgebra.{u3, u5} A G _inst_8) (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2)))))) (algebraMap.{u4, max u5 u3} k (MonoidAlgebra.{u3, u5} A G _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u5} A G _inst_8 _inst_2) (MonoidAlgebra.algebra.{u4, u5, u3} k G A _inst_7 _inst_8 _inst_9 _inst_2)) r)) (FunLike.coe.{max (max (succ u4) (succ u3)) (succ u2), succ u4, max (succ u3) (succ u2)} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => MonoidAlgebra.{u3, u2} A H _inst_8) _x) (MulHomClass.toFunLike.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10))) k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)) (RingHom.instRingHomClassRingHom.{u4, max u3 u2} k (MonoidAlgebra.{u3, u2} A H _inst_8) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_7)) (Semiring.toNonAssocSemiring.{max u2 u3} (MonoidAlgebra.{u3, u2} A H _inst_8) (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10)))))) (algebraMap.{u4, max u2 u3} k (MonoidAlgebra.{u3, u2} A H _inst_8) _inst_7 (MonoidAlgebra.semiring.{u3, u2} A H _inst_8 _inst_10) (MonoidAlgebra.algebra.{u4, u2, u3} k H A _inst_7 _inst_8 _inst_9 _inst_10)) r)
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.map_domain_algebra_map MonoidAlgebra.mapDomain_algebraMapₓ'. -/
 theorem mapDomain_algebraMap (k A : Type _) {H F : Type _} [CommSemiring k] [Semiring A]
     [Algebra k A] [Monoid H] [MonoidHomClass F G H] (f : F) (r : k) :
     mapDomain f (algebraMap k (MonoidAlgebra A G) r) = algebraMap k (MonoidAlgebra A H) r := by
   simp only [coe_algebra_map, map_domain_single, map_one]
 #align monoid_algebra.map_domain_algebra_map MonoidAlgebra.mapDomain_algebraMap
 
+#print MonoidAlgebra.mapDomainAlgHom /-
 /-- If `f : G → H` is a multiplicative homomorphism between two monoids, then
 `finsupp.map_domain f` is an algebra homomorphism between their monoid algebras. -/
 @[simps]
@@ -831,6 +1106,7 @@ def mapDomainAlgHom (k A : Type _) [CommSemiring k] [Semiring A] [Algebra k A] {
     [Monoid H] [MonoidHomClass F G H] (f : F) : MonoidAlgebra A G →ₐ[k] MonoidAlgebra A H :=
   { mapDomainRingHom A f with commutes' := mapDomain_algebraMap k A f }
 #align monoid_algebra.map_domain_alg_hom MonoidAlgebra.mapDomainAlgHom
+-/
 
 end lift
 
@@ -840,6 +1116,7 @@ attribute [local reducible] MonoidAlgebra
 
 variable (k)
 
+#print MonoidAlgebra.GroupSmul.linearMap /-
 /-- When `V` is a `k[G]`-module, multiplication by a group element `g` is a `k`-linear map. -/
 def GroupSmul.linearMap [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 →ₗ[k] V
@@ -848,7 +1125,14 @@ def GroupSmul.linearMap [Monoid G] [CommSemiring k] (V : Type u₃) [AddCommMono
   map_add' x y := smul_add (single g (1 : k)) x y
   map_smul' c x := smul_algebra_smul_comm _ _ _
 #align monoid_algebra.group_smul.linear_map MonoidAlgebra.GroupSmul.linearMap
+-/
 
+/- warning: monoid_algebra.group_smul.linear_map_apply -> MonoidAlgebra.GroupSmul.linearMap_apply is a dubious translation:
+lean 3 declaration is
+  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] (V : Type.{u3}) [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_2) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} k V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} k V (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] (g : G) (v : V), Eq.{succ u3} V (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V V _inst_3 _inst_3 _inst_4 _inst_4) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V V _inst_3 _inst_3 _inst_4 _inst_4) => V -> V) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V V (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_3 _inst_4 _inst_4 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) (MonoidAlgebra.GroupSmul.linearMap.{u1, u2, u3} k G _inst_1 _inst_2 V _inst_3 _inst_4 _inst_5 _inst_6 g) v) (SMul.smul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (SMulZeroClass.toHasSmul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MulZeroClass.toHasZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) g (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))))))) v)
+but is expected to have type
+  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] (V : Type.{u3}) [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] (g : G) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => V) v) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V V _inst_3 _inst_3 _inst_4 _inst_4) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => V) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V V (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_3 _inst_4 _inst_4 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) (MonoidAlgebra.GroupSmul.linearMap.{u1, u2, u3} k G _inst_1 _inst_2 V _inst_3 _inst_4 _inst_5 _inst_6 g) v) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.group_smul.linear_map_apply 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)
@@ -868,6 +1152,12 @@ variable [Monoid G] [CommSemiring k] {V W : Type u₃} [AddCommMonoid V] [Module
 
 include h
 
+/- warning: monoid_algebra.equivariant_of_linear_of_comm -> MonoidAlgebra.equivariantOfLinearOfComm is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] {V : Type.{u3}} {W : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_2) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} k V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} k V (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u3} W] [_inst_8 : Module.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7] [_inst_9 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_2) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toHasSmul.{u1, u3} k W (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (SMulWithZero.toSmulZeroClass.{u1, u3} k W (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (MulActionWithZero.toSMulWithZero.{u1, u3} k W (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (Module.toMulActionWithZero.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8), (forall (g : G) (v : V), Eq.{succ u3} W (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f (SMul.smul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (SMulZeroClass.toHasSmul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MulZeroClass.toHasZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) g (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))))))) v)) (SMul.smul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (SMulZeroClass.toHasSmul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (MulZeroClass.toHasZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (Module.toMulActionWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) g (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))))))) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v))) -> (LinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (RingHom.id.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9)
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] {V : Type.{u3}} {W : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u3} W] [_inst_8 : Module.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7] [_inst_9 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u1, u3} k W (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u1, u3} k W (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u1, u3} k W (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (Module.toMulActionWithZero.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8), (forall (g : G) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v))) -> (LinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (RingHom.id.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9)
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.equivariant_of_linear_of_comm MonoidAlgebra.equivariantOfLinearOfCommₓ'. -/
 /-- Build a `k[G]`-linear map from a `k`-linear map and evidence that it is `G`-equivariant. -/
 def equivariantOfLinearOfComm : V →ₗ[MonoidAlgebra k G] W
     where
@@ -884,6 +1174,12 @@ def equivariantOfLinearOfComm : V →ₗ[MonoidAlgebra k G] W
       all_goals infer_instance
 #align monoid_algebra.equivariant_of_linear_of_comm MonoidAlgebra.equivariantOfLinearOfComm
 
+/- warning: monoid_algebra.equivariant_of_linear_of_comm_apply -> MonoidAlgebra.equivariantOfLinearOfComm_apply is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] {V : Type.{u3}} {W : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_2) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} k V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} k V (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u3} W] [_inst_8 : Module.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7] [_inst_9 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_2))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_2) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toHasSmul.{u1, u3} k W (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (SMulWithZero.toSmulZeroClass.{u1, u3} k W (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (MulActionWithZero.toSMulWithZero.{u1, u3} k W (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (Module.toMulActionWithZero.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (h : forall (g : G) (v : V), Eq.{succ u3} W (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f (SMul.smul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (SMulZeroClass.toHasSmul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MulZeroClass.toHasZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) g (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))))))) v)) (SMul.smul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (SMulZeroClass.toHasSmul.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (SMulWithZero.toSmulZeroClass.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (MulZeroClass.toHasZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MulZeroOneClass.toMulZeroClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidWithZero.toMulZeroOneClass.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))))) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (MulActionWithZero.toSMulWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (Semiring.toMonoidWithZero.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddZeroClass.toHasZero.{u3} W (AddMonoid.toAddZeroClass.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7))) (Module.toMulActionWithZero.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))))) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) g (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))))))) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v))) (v : V), Eq.{succ u3} W (coeFn.{succ u3, succ u3} (LinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (RingHom.id.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) (fun (_x : LinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (RingHom.id.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) => V -> W) (LinearMap.hasCoeToFun.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_7 _inst_5 _inst_9 (RingHom.id.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)))) (MonoidAlgebra.equivariantOfLinearOfComm.{u1, u2, u3} k G _inst_1 _inst_2 V W _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 f h) v) (coeFn.{succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (fun (_x : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) => V -> W) (LinearMap.hasCoeToFun.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v)
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : CommSemiring.{u1} k] {V : Type.{u3}} {W : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_4))))] [_inst_7 : AddCommMonoid.{u3} W] [_inst_8 : Module.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7] [_inst_9 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7] [_inst_10 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) _inst_2 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_2 (CommSemiring.toSemiring.{u1} k _inst_2) (Algebra.id.{u1} k _inst_2) _inst_1)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9)))) (SMulZeroClass.toSMul.{u1, u3} k W (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (SMulWithZero.toSMulZeroClass.{u1, u3} k W (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_2)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (MulActionWithZero.toSMulWithZero.{u1, u3} k W (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)) (AddMonoid.toZero.{u3} W (AddCommMonoid.toAddMonoid.{u3} W _inst_7)) (Module.toMulActionWithZero.{u1, u3} k W (CommSemiring.toSemiring.{u1} k _inst_2) _inst_7 _inst_8))))] (f : LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) (h : forall (g : G) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V V (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_5))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) v)) (HSMul.hSMul.{max u2 u1, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (instHSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) _inst_7)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1))) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) _inst_7)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) _inst_7)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_7 _inst_9))))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) g (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))))) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v))) (v : V), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) v) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (RingHom.id.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1))) V W _inst_3 _inst_7 _inst_5 _inst_9) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{max u1 u2, max u1 u2, u3, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) V W (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) _inst_1) _inst_3 _inst_7 _inst_5 _inst_9 (RingHom.id.{max u2 u1} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1)))) (MonoidAlgebra.equivariantOfLinearOfComm.{u1, u2, u3} k G _inst_1 _inst_2 V W _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 f h) v) (FunLike.coe.{succ u3, succ u3, succ u3} (LinearMap.{u1, u1, u3, u3} k k (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2))) V W _inst_3 _inst_7 _inst_4 _inst_8) V (fun (_x : V) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : V) => W) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u3} k k V W (CommSemiring.toSemiring.{u1} k _inst_2) (CommSemiring.toSemiring.{u1} k _inst_2) _inst_3 _inst_7 _inst_4 _inst_8 (RingHom.id.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_2)))) f v)
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.equivariant_of_linear_of_comm_apply MonoidAlgebra.equivariantOfLinearOfComm_applyₓ'. -/
 @[simp]
 theorem equivariantOfLinearOfComm_apply (v : V) : (equivariantOfLinearOfComm f h) v = f v :=
   rfl
@@ -901,6 +1197,12 @@ variable {ι : Type ui}
 
 attribute [local reducible] MonoidAlgebra
 
+/- warning: monoid_algebra.prod_single -> MonoidAlgebra.prod_single is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {ι : Type.{u3}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : CommMonoid.{u2} G] {s : Finset.{u3} ι} {a : ι -> G} {b : ι -> k}, Eq.{succ (max u2 u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finset.prod.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) ι (CommSemiring.toCommMonoid.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (MonoidAlgebra.commSemiring.{u1, u2} k G _inst_1 _inst_2)) s (fun (i : ι) => Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (a i) (b i))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (Finset.prod.{u2, u3} G ι _inst_2 s (fun (i : ι) => a i)) (Finset.prod.{u1, u3} k ι (CommSemiring.toCommMonoid.{u1} k _inst_1) s (fun (i : ι) => b i)))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} {ι : Type.{u3}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : CommMonoid.{u2} G] {s : Finset.{u3} ι} {a : ι -> G} {b : ι -> k}, Eq.{max (succ u1) (succ u2)} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Finset.prod.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) ι (CommSemiring.toCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.commSemiring.{u1, u2} k G _inst_1 _inst_2)) s (fun (i : ι) => MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (a i) (b i))) (MonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Finset.prod.{u2, u3} G ι _inst_2 s (fun (i : ι) => a i)) (Finset.prod.{u1, u3} k ι (CommSemiring.toCommMonoid.{u1} k _inst_1) s (fun (i : ι) => b i)))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.prod_single MonoidAlgebra.prod_singleₓ'. -/
 theorem prod_single [CommSemiring k] [CommMonoid G] {s : Finset ι} {a : ι → G} {b : ι → k} :
     (∏ i in s, single (a i) (b i)) = single (∏ i in s, a i) (∏ i in s, b i) :=
   Finset.cons_induction_on s rfl fun a s has ih => by
@@ -916,18 +1218,36 @@ variable [Semiring k] [Group G]
 
 attribute [local reducible] MonoidAlgebra
 
+/- warning: monoid_algebra.mul_single_apply -> MonoidAlgebra.mul_single_apply is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Group.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G) (y : G), Eq.{succ u1} k (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))))) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r)) y) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) y (Inv.inv.{u2} G (DivInvMonoid.toHasInv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) x))) r)
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Group.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G) (y : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))))) f (MonoidAlgebra.single.{u1, u2} k G _inst_1 x r)) y) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) y (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) x))) k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) y (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) x))) (instHMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) y (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) x))) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) y (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) x))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) y (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) x))) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) y (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) x))) _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) y (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) x))) r)
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.mul_single_apply 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 :=
   f.mul_single_apply_aux fun a => eq_mul_inv_iff_mul_eq.symm
 #align monoid_algebra.mul_single_apply MonoidAlgebra.mul_single_apply
 
+/- warning: monoid_algebra.single_mul_apply -> MonoidAlgebra.single_mul_apply is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Group.{u2} G] (r : k) (x : G) (f : MonoidAlgebra.{u1, u2} k G _inst_1) (y : G), Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (instHMul.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r) f) y) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) r (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) (Inv.inv.{u2} G (DivInvMonoid.toHasInv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) x) y)))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Group.{u2} G] (r : k) (x : G) (f : MonoidAlgebra.{u1, u2} k G _inst_1) (y : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))))) (MonoidAlgebra.single.{u1, u2} k G _inst_1 x r) f) y) (HMul.hMul.{u1, u1, u1} k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) x) y)) k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) r (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) x) y)))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.single_mul_apply 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) :=
   f.single_mul_apply_aux fun z => eq_inv_mul_iff_mul_eq.symm
 #align monoid_algebra.single_mul_apply MonoidAlgebra.single_mul_apply
 
+/- warning: monoid_algebra.mul_apply_left -> MonoidAlgebra.mul_apply_left is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Group.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1) (x : G), Eq.{succ u1} k (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))))) f g) x) (Finsupp.sum.{u2, u1, u1} G k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) f (fun (a : G) (b : k) => HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) b (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) g (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) (Inv.inv.{u2} G (DivInvMonoid.toHasInv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) a) x))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Group.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))))) f g) x) (Finsupp.sum.{u2, u1, u1} G k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) f (fun (a : G) (b : k) => HMul.hMul.{u1, u1, u1} k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) a) x)) k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) b (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) g (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) a) x))))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.mul_apply_left 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) :=
   calc
@@ -937,6 +1257,12 @@ theorem mul_apply_left (f g : MonoidAlgebra k G) (x : G) :
     
 #align monoid_algebra.mul_apply_left MonoidAlgebra.mul_apply_left
 
+/- warning: monoid_algebra.mul_apply_right -> MonoidAlgebra.mul_apply_right is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Group.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1) (x : G), Eq.{succ u1} k (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))))) f g) x) (Finsupp.sum.{u2, u1, u1} G k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) g (fun (a : G) (b : k) => HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (coeFn.{succ (max u1 u2), max (succ u2) (succ u1)} (MonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : MonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (MonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) x (Inv.inv.{u2} G (DivInvMonoid.toHasInv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) a))) b))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Group.{u2} G] (f : MonoidAlgebra.{u1, u2} k G _inst_1) (g : MonoidAlgebra.{u1, u2} k G _inst_1) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))))) f g) x) (Finsupp.sum.{u2, u1, u1} G k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) g (fun (a : G) (b : k) => HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) x (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) a))) k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) x (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) a))) (instHMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) x (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) a))) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) x (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) a))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) x (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) a))) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) x (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) a))) _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))))) x (Inv.inv.{u2} G (InvOneClass.toInv.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2)))) a))) b))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.mul_apply_right MonoidAlgebra.mul_apply_rightₓ'. -/
 -- If we'd assumed `comm_semiring`, we could deduce this from `mul_apply_left`.
 theorem mul_apply_right (f g : MonoidAlgebra k G) (x : G) :
     (f * g) x = g.Sum fun a b => f (x * a⁻¹) * b :=
@@ -955,6 +1281,12 @@ open Finsupp MulOpposite
 
 variable [Semiring k]
 
+/- warning: monoid_algebra.op_ring_equiv -> MonoidAlgebra.opRingEquiv is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G], RingEquiv.{max u1 u2, max u1 u2} (MulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.hasMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.hasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.hasMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.hasMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G], RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.op_ring_equiv MonoidAlgebra.opRingEquivₓ'. -/
 /-- The opposite of an `monoid_algebra R I` equivalent as a ring to
 the `monoid_algebra Rᵐᵒᵖ Iᵐᵒᵖ` over the opposite ring, taking elements to their opposite. -/
 @[simps (config := { simpRhs := true })]
@@ -970,15 +1302,23 @@ protected noncomputable def opRingEquiv [Monoid G] :
       simp }
 #align monoid_algebra.op_ring_equiv MonoidAlgebra.opRingEquiv
 
+/- warning: monoid_algebra.op_ring_equiv_single -> MonoidAlgebra.opRingEquiv_single is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] (r : k) (x : G), Eq.{succ (max u1 u2)} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (RingEquiv.{max u1 u2, max u1 u2} (MulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.hasMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.hasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.hasMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.hasMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))) (fun (_x : RingEquiv.{max u1 u2, max u1 u2} (MulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.hasMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.hasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.hasMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.hasMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))) => (MulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1)) -> (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1))) (RingEquiv.hasCoeToFun.{max u1 u2, max u1 u2} (MulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.hasMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.hasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.hasMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.semiring.{u1} k _inst_1) (MulOpposite.hasMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.opRingEquiv.{u1, u2} k G _inst_1 _inst_2) (MulOpposite.op.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r))) (Finsupp.single.{u2, u1} (MulOpposite.{u2} G) (MulOpposite.{u1} k) (MulZeroClass.toHasZero.{u1} (MulOpposite.{u1} k) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} (MulOpposite.{u1} k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} k) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} k) (MulOpposite.semiring.{u1} k _inst_1))))) (MulOpposite.op.{u2} G x) (MulOpposite.op.{u1} k r))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Monoid.{u2} G] (r : k) (x : G), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) => MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.op.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.single.{u1, u2} k G _inst_1 x r))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (fun (_x : MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) => MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulEquivClass.toEquivLike.{max u2 u1, max u2 u1, max u2 u1} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (RingEquivClass.toMulEquivClass.{max u2 u1, max u2 u1, max u2 u1} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (RingEquiv.instRingEquivClassRingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidAlgebra.mul.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)))))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.instMulMulOpposite.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2))))))))))) (MonoidAlgebra.opRingEquiv.{u1, u2} k G _inst_1 _inst_2) (MulOpposite.op.{max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.single.{u1, u2} k G _inst_1 x r))) (MonoidAlgebra.single.{u1, u2} (MulOpposite.{u1} k) (MulOpposite.{u2} G) (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (MulOpposite.op.{u2} G x) (MulOpposite.op.{u1} k r))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.op_ring_equiv_single MonoidAlgebra.opRingEquiv_singleₓ'. -/
 @[simp]
 theorem opRingEquiv_single [Monoid G] (r : k) (x : G) :
     MonoidAlgebra.opRingEquiv (op (single x r)) = single (op x) (op r) := by simp
 #align monoid_algebra.op_ring_equiv_single MonoidAlgebra.opRingEquiv_single
 
+#print MonoidAlgebra.opRingEquiv_symm_single /-
 @[simp]
 theorem opRingEquiv_symm_single [Monoid G] (r : kᵐᵒᵖ) (x : Gᵐᵒᵖ) :
     MonoidAlgebra.opRingEquiv.symm (single x r) = op (single x.unop r.unop) := by simp
 #align monoid_algebra.op_ring_equiv_symm_single MonoidAlgebra.opRingEquiv_symm_single
+-/
 
 end Opposite
 
@@ -990,6 +1330,12 @@ variable {V : Type _} [AddCommMonoid V]
 
 variable [Module k V] [Module (MonoidAlgebra k G) V] [IsScalarTower k (MonoidAlgebra k G) V]
 
+/- warning: monoid_algebra.submodule_of_smul_mem -> MonoidAlgebra.submoduleOfSmulMem is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {V : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3] [_inst_5 : Module.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3] [_inst_6 : IsScalarTower.{u1, max u1 u2, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (SMulZeroClass.toHasSmul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} k G (CommSemiring.toSemiring.{u1} k _inst_1))))) (MonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k (CommSemiring.toSemiring.{u1} k _inst_1) (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))))) (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} k V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} k V (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4))))] (W : Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4), (forall (g : G) (v : V), (Membership.Mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) v W) -> (Membership.Mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.setLike.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) (SMul.smul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (SMulZeroClass.toHasSmul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (SMulWithZero.toSmulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MulZeroClass.toHasZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulZeroClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddZeroClass.toHasZero.{u3} V (AddMonoid.toAddZeroClass.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3))) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) => G -> (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) g) v) W)) -> (Submodule.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Monoid.{u2} G] {V : Type.{u3}} [_inst_3 : AddCommMonoid.{u3} V] [_inst_4 : Module.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3] [_inst_5 : Module.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3] [_inst_6 : IsScalarTower.{u1, max u2 u1, u3} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Algebra.toSMul.{u1, max u1 u2} k (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)) (SMulZeroClass.toSMul.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidWithZero.toZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (Semiring.toMonoidWithZero.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)))) (SMulZeroClass.toSMul.{u1, u3} k V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} k V (CommMonoidWithZero.toZero.{u1} k (CommSemiring.toCommMonoidWithZero.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} k V (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4))))] (W : Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4), (forall (g : G) (v : V), (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.instSetLikeSubmodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) v W) -> (Membership.mem.{u3, u3} V (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4) V (Submodule.instSetLikeSubmodule.{u1, u3} k V (CommSemiring.toSemiring.{u1} k _inst_1) _inst_3 _inst_4)) (HSMul.hSMul.{max u1 u2, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V V (instHSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (SMulZeroClass.toSMul.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (SMulWithZero.toSMulZeroClass.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidWithZero.toZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (MulActionWithZero.toSMulWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (Semiring.toMonoidWithZero.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)) (AddMonoid.toZero.{u3} V (AddCommMonoid.toAddMonoid.{u3} V _inst_3)) (Module.toMulActionWithZero.{max u1 u2, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) g) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5))))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))) G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Monoid.toMulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2))))))) (MonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Monoid.toMulOneClass.{u2} G _inst_2)) g) v) W)) -> (Submodule.{max u2 u1, u3} (MonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) V (MonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 _inst_5)
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.submodule_of_smul_mem MonoidAlgebra.submoduleOfSmulMemₓ'. -/
 /-- A submodule over `k` which is stable under scalar multiplication by elements of `G` is a
 submodule over `monoid_algebra k G`  -/
 def submoduleOfSmulMem (W : Submodule k V) (h : ∀ (g : G) (v : V), v ∈ W → of k G g • v ∈ W) :
@@ -1015,6 +1361,7 @@ section
 
 variable [Semiring k]
 
+#print AddMonoidAlgebra /-
 /-- The monoid algebra over a semiring `k` generated by the additive monoid `G`.
 It is the type of finite formal `k`-linear combinations of terms of `G`,
 endowed with the convolution product.
@@ -1022,6 +1369,7 @@ endowed with the convolution product.
 def AddMonoidAlgebra :=
   G →₀ k deriving Inhabited, AddCommMonoid
 #align add_monoid_algebra AddMonoidAlgebra
+-/
 
 instance : CoeFun (AddMonoidAlgebra k G) fun _ => G → k :=
   Finsupp.coeFun
@@ -1036,21 +1384,33 @@ section
 
 variable [Semiring k] [NonUnitalNonAssocSemiring R]
 
+/- warning: add_monoid_algebra.lift_nc -> AddMonoidAlgebra.liftNC is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : NonUnitalNonAssocSemiring.{u3} R], (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) -> ((Multiplicative.{u2} G) -> R) -> (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : NonUnitalNonAssocSemiring.{u3} R], (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) -> ((Multiplicative.{u2} G) -> R) -> (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u1, u2} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc AddMonoidAlgebra.liftNCₓ'. -/
 /-- A non-commutative version of `add_monoid_algebra.lift`: given a additive homomorphism `f : k →+
 R` and a map `g : multiplicative G → R`, returns the additive
 homomorphism from `add_monoid_algebra k G` such that `lift_nc f g (single a b) = f b * g a`. If `f`
 is a ring homomorphism and the range of either `f` or `g` is in center of `R`, then the result is a
 ring homomorphism.  If `R` is a `k`-algebra and `f = algebra_map k R`, then the result is an algebra
 homomorphism called `add_monoid_algebra.lift`. -/
-def liftNc (f : k →+ R) (g : Multiplicative G → R) : AddMonoidAlgebra k G →+ R :=
+def liftNC (f : k →+ R) (g : Multiplicative G → R) : AddMonoidAlgebra k G →+ R :=
   liftAddHom fun x : G => (AddMonoidHom.mulRight (g <| Multiplicative.ofAdd x)).comp f
-#align add_monoid_algebra.lift_nc AddMonoidAlgebra.liftNc
-
+#align add_monoid_algebra.lift_nc AddMonoidAlgebra.liftNC
+
+/- warning: add_monoid_algebra.lift_nc_single -> AddMonoidAlgebra.liftNC_single is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : NonUnitalNonAssocSemiring.{u3} R] (f : AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (g : (Multiplicative.{u2} G) -> R) (a : G) (b : k), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 _inst_2 f g) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a b)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R _inst_2))) (coeFn.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) (fun (_x : AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) => k -> R) (AddMonoidHom.hasCoeToFun.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R _inst_2)))) f b) (g (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (fun (_x : Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) => G -> (Multiplicative.{u2} G)) (Equiv.hasCoeToFun.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) a)))
+but is expected to have type
+  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : NonUnitalNonAssocSemiring.{u1} R] (f : AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (g : (Multiplicative.{u3} G) -> R) (a : G) (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 _inst_2 f g) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) b) R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) b) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) b) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) b) _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : k) => R) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddZeroClass.toAdd.{u2} k (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))) k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2))) (AddMonoidHom.addMonoidHomClass.{u2, u1} k R (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R _inst_2)))))) f b) (g (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} G (Multiplicative.{u3} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : G) => Multiplicative.{u3} G) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} G (Multiplicative.{u3} G)) (Multiplicative.ofAdd.{u3} G) a)))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_single 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) :=
+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) :=
   liftAddHom_apply_single _ _ _
-#align add_monoid_algebra.lift_nc_single AddMonoidAlgebra.liftNc_single
+#align add_monoid_algebra.lift_nc_single AddMonoidAlgebra.liftNC_single
 
 end
 
@@ -1065,6 +1425,12 @@ variable [Semiring k] [Add G]
 instance : Mul (AddMonoidAlgebra k G) :=
   ⟨fun f g => f.Sum fun a₁ b₁ => g.Sum fun a₂ b₂ => single (a₁ + a₂) (b₁ * b₂)⟩
 
+/- warning: add_monoid_algebra.mul_def -> AddMonoidAlgebra.mul_def is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] {f : AddMonoidAlgebra.{u1, u2} k G _inst_1} {g : AddMonoidAlgebra.{u1, u2} k G _inst_1}, Eq.{succ (max u2 u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) f g) (Finsupp.sum.{u2, u1, max u2 u1} G k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1) f (fun (a₁ : G) (b₁ : k) => Finsupp.sum.{u2, u1, max u2 u1} G k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1) g (fun (a₂ : G) (b₂ : k) => Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) a₁ a₂) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) b₁ b₂))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] {f : AddMonoidAlgebra.{u1, u2} k G _inst_1} {g : AddMonoidAlgebra.{u1, u2} k G _inst_1}, Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) f g) (Finsupp.sum.{u2, u1, max u2 u1} G k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u1, u2} k G _inst_1) f (fun (a₁ : G) (b₁ : k) => Finsupp.sum.{u2, u1, max u2 u1} G k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u1, u2} k G _inst_1) g (fun (a₂ : G) (b₂ : k) => AddMonoidAlgebra.single.{u1, u2} k G _inst_1 (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) a₁ a₂) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) b₁ b₂))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mul_def AddMonoidAlgebra.mul_defₓ'. -/
 theorem mul_def {f g : AddMonoidAlgebra k G} :
     f * g = f.Sum fun a₁ b₁ => g.Sum fun a₂ b₂ => single (a₁ + a₂) (b₁ * b₂) :=
   rfl
@@ -1097,12 +1463,18 @@ instance : NonUnitalNonAssocSemiring (AddMonoidAlgebra k G) :=
 
 variable [Semiring R]
 
-theorem liftNc_mul {g_hom : Type _} [MulHomClass g_hom (Multiplicative G) R] (f : k →+* R)
+/- warning: add_monoid_algebra.lift_nc_mul -> AddMonoidAlgebra.liftNC_mul is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] [_inst_3 : Semiring.{u3} R] {g_hom : Type.{u4}} [_inst_4 : MulHomClass.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : g_hom) (a : AddMonoidAlgebra.{u1, u2} k G _inst_1) (b : AddMonoidAlgebra.{u1, u2} k G _inst_1), (forall {x : G} {y : G}, (Membership.Mem.{u2, u2} G (Finset.{u2} G) (Finset.hasMem.{u2} G) y (Finsupp.support.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a)) -> (Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) b x)) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (fun (_x : Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) => G -> (Multiplicative.{u2} G)) (Equiv.hasCoeToFun.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) y)))) -> (Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) a) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (MulHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasMul.{u2} G _inst_2) (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) _inst_4)) g)) b)))
+but is expected to have type
+  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Add.{u4} G] [_inst_3 : Semiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : MulHomClass.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : g_hom) (a : AddMonoidAlgebra.{u3, u4} k G _inst_1) (b : AddMonoidAlgebra.{u3, u4} k G _inst_1), (forall {x : G} {y : G}, (Membership.mem.{u4, u4} G (Finset.{u4} G) (Finset.instMembershipFinset.{u4} G) y (Finsupp.support.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1)) a)) -> (Commute.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (a : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) a) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) _inst_3))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u3} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (Finsupp.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u4, u3} G k (MonoidWithZero.toZero.{u3} k (Semiring.toMonoidWithZero.{u3} k _inst_1))) b x)) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g (FunLike.coe.{succ u4, succ u4, succ u4} (Equiv.{succ u4, succ u4} G (Multiplicative.{u4} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : G) => Multiplicative.{u4} G) _x) (Equiv.instFunLikeEquiv.{succ u4, succ u4} G (Multiplicative.{u4} G)) (Multiplicative.ofAdd.{u4} G) y)))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.hasMul.{u3, u4} k G _inst_1 _inst_2)) a b)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) (HMul.hMul.{max u3 u4, max u3 u4, max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (instHMul.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.hasMul.{u3, u4} k G _inst_1 _inst_2)) a b)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) a) _inst_3)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) a) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u4} G) => R) _x) (MulHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (Multiplicative.mul.{u4} G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) _inst_4) g)) b)))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_mul AddMonoidAlgebra.liftNC_mulₓ'. -/
+theorem liftNC_mul {g_hom : Type _} [MulHomClass g_hom (Multiplicative G) R] (f : k →+* R)
     (g : g_hom) (a b : AddMonoidAlgebra 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 :=
-  (MonoidAlgebra.liftNc_mul f g _ _ @h_comm : _)
-#align add_monoid_algebra.lift_nc_mul AddMonoidAlgebra.liftNc_mul
+    liftNC (f : k →+ R) g (a * b) = liftNC (f : k →+ R) g a * liftNC (f : k →+ R) g b :=
+  (MonoidAlgebra.liftNC_mul f g _ _ @h_comm : _)
+#align add_monoid_algebra.lift_nc_mul AddMonoidAlgebra.liftNC_mul
 
 end Mul
 
@@ -1115,15 +1487,27 @@ variable [Semiring k] [Zero G] [NonAssocSemiring R]
 instance : One (AddMonoidAlgebra k G) :=
   ⟨single 0 1⟩
 
+/- warning: add_monoid_algebra.one_def -> AddMonoidAlgebra.one_def is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Zero.{u2} G], Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (OfNat.ofNat.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) 1 (OfNat.mk.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) 1 (One.one.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.one.{u1, u2} k G _inst_1 _inst_2)))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G _inst_2))) (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Zero.{u2} G], Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (OfNat.ofNat.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) 1 (One.toOfNat1.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.one.{u1, u2} k G _inst_1 _inst_2))) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 (OfNat.ofNat.{u2} G 0 (Zero.toOfNat0.{u2} G _inst_2)) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.one_def AddMonoidAlgebra.one_defₓ'. -/
 theorem one_def : (1 : AddMonoidAlgebra k G) = single 0 1 :=
   rfl
 #align add_monoid_algebra.one_def AddMonoidAlgebra.one_def
 
+/- warning: add_monoid_algebra.lift_nc_one -> AddMonoidAlgebra.liftNC_one is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Zero.{u2} G] [_inst_3 : NonAssocSemiring.{u3} R] {g_hom : Type.{u4}} [_inst_4 : OneHomClass.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasOne.{u2} G _inst_2) (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3)))] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (g : g_hom), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_3))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_3))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_3))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_3) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3)))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3 (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) _inst_3))))) f) (coeFn.{succ u4, max (succ u2) (succ u3)} g_hom (fun (_x : g_hom) => (Multiplicative.{u2} G) -> R) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} g_hom (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => R) (OneHomClass.toFunLike.{u4, u2, u3} g_hom (Multiplicative.{u2} G) R (Multiplicative.hasOne.{u2} G _inst_2) (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))) _inst_4)) g)) (OfNat.ofNat.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) 1 (OfNat.mk.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) 1 (One.one.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.one.{u1, u2} k G _inst_1 _inst_2))))) (OfNat.ofNat.{u3} R 1 (OfNat.mk.{u3} R 1 (One.one.{u3} R (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_3))))))
+but is expected to have type
+  forall {k : Type.{u3}} {G : Type.{u4}} {R : Type.{u1}} [_inst_1 : Semiring.{u3} k] [_inst_2 : Zero.{u4} G] [_inst_3 : NonAssocSemiring.{u1} R] {g_hom : Type.{u2}} [_inst_4 : OneHomClass.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (instOneMultiplicative.{u4} G _inst_2) (NonAssocSemiring.toOne.{u1} R _inst_3)] (f : RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3) (g : g_hom), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u3, u4} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddZeroClass.toAdd.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (AddMonoidAlgebra.{u3, u4} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u3, u4} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3))))))) (AddMonoidAlgebra.liftNC.{u3, u4, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R _inst_3) (AddMonoidHomClass.toAddMonoidHom.{u3, u1, max u3 u1} k R (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3) (AddMonoid.toAddZeroClass.{u3} k (AddMonoidWithOne.toAddMonoid.{u3} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} k (NonAssocSemiring.toAddCommMonoidWithOne.{u3} k (Semiring.toNonAssocSemiring.{u3} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R _inst_3)))) (RingHomClass.toAddMonoidHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3) k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3 (RingHom.instRingHomClassRingHom.{u3, u1} k R (Semiring.toNonAssocSemiring.{u3} k _inst_1) _inst_3)) f) (FunLike.coe.{succ u2, succ u4, succ u1} g_hom (Multiplicative.{u4} G) (fun (_x : Multiplicative.{u4} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.1254 : Multiplicative.{u4} G) => R) _x) (OneHomClass.toFunLike.{u2, u4, u1} g_hom (Multiplicative.{u4} G) R (instOneMultiplicative.{u4} G _inst_2) (NonAssocSemiring.toOne.{u1} R _inst_3) _inst_4) g)) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) 1 (One.toOfNat1.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) (NonAssocSemiring.toOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u3, u4} k G _inst_1) => R) (OfNat.ofNat.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) 1 (One.toOfNat1.{max u3 u4} (AddMonoidAlgebra.{u3, u4} k G _inst_1) (AddMonoidAlgebra.one.{u3, u4} k G _inst_1 _inst_2)))) _inst_3)))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_one AddMonoidAlgebra.liftNC_oneₓ'. -/
 @[simp]
-theorem liftNc_one {g_hom : Type _} [OneHomClass g_hom (Multiplicative G) R] (f : k →+* R)
-    (g : g_hom) : liftNc (f : k →+ R) g 1 = 1 :=
-  (MonoidAlgebra.liftNc_one f g : _)
-#align add_monoid_algebra.lift_nc_one AddMonoidAlgebra.liftNc_one
+theorem liftNC_one {g_hom : Type _} [OneHomClass g_hom (Multiplicative G) R] (f : k →+* R)
+    (g : g_hom) : liftNC (f : k →+ R) g 1 = 1 :=
+  (MonoidAlgebra.liftNC_one f g : _)
+#align add_monoid_algebra.lift_nc_one AddMonoidAlgebra.liftNC_one
 
 end One
 
@@ -1165,6 +1549,12 @@ instance : NonAssocSemiring (AddMonoidAlgebra k G) :=
       simp only [mul_def, one_def, sum_single_index, mul_zero, single_zero, sum_zero, add_zero,
         mul_one, sum_single] }
 
+/- warning: add_monoid_algebra.nat_cast_def -> AddMonoidAlgebra.nat_cast_def is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (n : Nat), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) ((fun (a : Type) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{1, max (succ u2) (succ u1)} a b] => self.0) Nat (AddMonoidAlgebra.{u1, u2} k G _inst_1) (HasLiftT.mk.{1, max (succ u2) (succ u1)} Nat (AddMonoidAlgebra.{u1, u2} k G _inst_1) (CoeTCₓ.coe.{1, max (succ u2) (succ u1)} Nat (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Nat.castCoe.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidWithOne.toNatCast.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toAddCommMonoidWithOne.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))))))) n) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G _inst_2)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat k (HasLiftT.mk.{1, succ u1} Nat k (CoeTCₓ.coe.{1, succ u1} Nat k (Nat.castCoe.{u1} k (AddMonoidWithOne.toNatCast.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) n))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (n : Nat), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Nat.cast.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toNatCast.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)) n) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 (OfNat.ofNat.{u2} G 0 (Zero.toOfNat0.{u2} G (AddZeroClass.toZero.{u2} G _inst_2))) (Nat.cast.{u1} k (Semiring.toNatCast.{u1} k _inst_1) n))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.nat_cast_def AddMonoidAlgebra.nat_cast_defₓ'. -/
 theorem nat_cast_def (n : ℕ) : (n : AddMonoidAlgebra k G) = single 0 n :=
   rfl
 #align add_monoid_algebra.nat_cast_def AddMonoidAlgebra.nat_cast_def
@@ -1191,14 +1581,20 @@ instance : Semiring (AddMonoidAlgebra k G) :=
 
 variable [Semiring R]
 
+/- warning: add_monoid_algebra.lift_nc_ring_hom -> AddMonoidAlgebra.liftNCRingHom is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : Multiplicative.{u2} G), Commute.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f x) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => (Multiplicative.{u2} G) -> R) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g y)) -> (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))), (forall (x : k) (y : Multiplicative.{u2} G), Commute.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) x) (NonUnitalNonAssocSemiring.toMul.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) x) (Semiring.toNonAssocSemiring.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) x) _inst_3))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) _x) (MulHomClass.toFunLike.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.instRingHomClassRingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) f x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u2} G) => R) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) R (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u3} R (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g y)) -> (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_ring_hom AddMonoidAlgebra.liftNCRingHomₓ'. -/
 /-- `lift_nc` as a `ring_hom`, for when `f` and `g` commute -/
-def liftNcRingHom (f : k →+* R) (g : Multiplicative G →* R) (h_comm : ∀ x y, Commute (f x) (g y)) :
+def liftNCRingHom (f : k →+* R) (g : Multiplicative G →* R) (h_comm : ∀ x y, Commute (f x) (g y)) :
     AddMonoidAlgebra k G →+* R :=
-  { liftNc (f : k →+ R) g with
-    toFun := liftNc (f : k →+ R) g
-    map_one' := liftNc_one _ _
-    map_mul' := fun a b => liftNc_mul _ _ _ _ fun _ _ _ => h_comm _ _ }
-#align add_monoid_algebra.lift_nc_ring_hom AddMonoidAlgebra.liftNcRingHom
+  { liftNC (f : k →+ R) g with
+    toFun := liftNC (f : k →+ R) g
+    map_one' := liftNC_one _ _
+    map_mul' := fun a b => liftNC_mul _ _ _ _ fun _ _ _ => h_comm _ _ }
+#align add_monoid_algebra.lift_nc_ring_hom AddMonoidAlgebra.liftNCRingHom
 
 end Semiring
 
@@ -1236,6 +1632,12 @@ instance [Ring k] [AddZeroClass G] : NonAssocRing (AddMonoidAlgebra k G) :=
     intCast_ofNat := fun n => by simpa
     intCast_negSucc := fun n => by simpa }
 
+/- warning: add_monoid_algebra.int_cast_def -> AddMonoidAlgebra.int_cast_def is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Ring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (z : Int), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) ((fun (a : Type) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{1, max (succ u2) (succ u1)} a b] => self.0) Int (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (HasLiftT.mk.{1, max (succ u2) (succ u1)} Int (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (CoeTCₓ.coe.{1, max (succ u2) (succ u1)} Int (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (Int.castCoe.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (AddGroupWithOne.toHasIntCast.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (NonAssocRing.toAddGroupWithOne.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocRing.{u1, u2} k G _inst_1 _inst_2)))))) z) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (Ring.toSemiring.{u1} k _inst_1))))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G _inst_2)))) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int k (HasLiftT.mk.{1, succ u1} Int k (CoeTCₓ.coe.{1, succ u1} Int k (Int.castCoe.{u1} k (AddGroupWithOne.toHasIntCast.{u1} k (NonAssocRing.toAddGroupWithOne.{u1} k (Ring.toNonAssocRing.{u1} k _inst_1)))))) z))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Ring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (z : Int), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (Int.cast.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (NonAssocRing.toIntCast.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocRing.{u1, u2} k G _inst_1 _inst_2)) z) (AddMonoidAlgebra.single.{u1, u2} k G (Ring.toSemiring.{u1} k _inst_1) (OfNat.ofNat.{u2} G 0 (Zero.toOfNat0.{u2} G (AddZeroClass.toZero.{u2} G _inst_2))) (Int.cast.{u1} k (Ring.toIntCast.{u1} k _inst_1) z))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.int_cast_def AddMonoidAlgebra.int_cast_defₓ'. -/
 theorem int_cast_def [Ring k] [AddZeroClass G] (z : ℤ) : (z : AddMonoidAlgebra k G) = single 0 z :=
   rfl
 #align add_monoid_algebra.int_cast_def AddMonoidAlgebra.int_cast_def
@@ -1284,21 +1686,45 @@ section MiscTheorems
 
 variable [Semiring k]
 
+/- warning: add_monoid_algebra.mul_apply -> AddMonoidAlgebra.mul_apply is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DecidableEq.{succ u2} G] [_inst_3 : Add.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1) (x : G), Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_3)) f g) x) (Finsupp.sum.{u2, u1, u1} G k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) f (fun (a₁ : G) (b₁ : k) => Finsupp.sum.{u2, u1, u1} G k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) g (fun (a₂ : G) (b₂ : k) => ite.{succ u1} k (Eq.{succ u2} G (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_3) a₁ a₂) x) (_inst_2 (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_3) a₁ a₂) x) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) b₁ b₂) (OfNat.ofNat.{u1} k 0 (OfNat.mk.{u1} k 0 (Zero.zero.{u1} k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DecidableEq.{succ u2} G] [_inst_3 : Add.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_3)) f g) x) (Finsupp.sum.{u2, u1, u1} G k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) f (fun (a₁ : G) (b₁ : k) => Finsupp.sum.{u2, u1, u1} G k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) g (fun (a₂ : G) (b₂ : k) => ite.{succ u1} k (Eq.{succ u2} G (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_3) a₁ a₂) x) (_inst_2 (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_3) a₁ a₂) x) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) b₁ b₂) (OfNat.ofNat.{u1} k 0 (Zero.toOfNat0.{u1} k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mul_apply AddMonoidAlgebra.mul_applyₓ'. -/
 theorem mul_apply [DecidableEq G] [Add G] (f g : AddMonoidAlgebra 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 :=
   @MonoidAlgebra.mul_apply k (Multiplicative G) _ _ _ _ _ _
 #align add_monoid_algebra.mul_apply AddMonoidAlgebra.mul_apply
 
+/- warning: add_monoid_algebra.mul_apply_antidiagonal -> AddMonoidAlgebra.mul_apply_antidiagonal is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1) (x : G) (s : Finset.{u2} (Prod.{u2, u2} G G)), (forall {p : Prod.{u2, u2} G G}, Iff (Membership.Mem.{u2, u2} (Prod.{u2, u2} G G) (Finset.{u2} (Prod.{u2, u2} G G)) (Finset.hasMem.{u2} (Prod.{u2, u2} G G)) p s) (Eq.{succ u2} G (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) (Prod.fst.{u2, u2} G G p) (Prod.snd.{u2, u2} G G p)) x)) -> (Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) f g) x) (Finset.sum.{u1, u2} k (Prod.{u2, u2} G G) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) s (fun (p : Prod.{u2, u2} G G) => HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f (Prod.fst.{u2, u2} G G p)) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) g (Prod.snd.{u2, u2} G G p)))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1) (x : G) (s : Finset.{u2} (Prod.{u2, u2} G G)), (forall {p : Prod.{u2, u2} G G}, Iff (Membership.mem.{u2, u2} (Prod.{u2, u2} G G) (Finset.{u2} (Prod.{u2, u2} G G)) (Finset.instMembershipFinset.{u2} (Prod.{u2, u2} G G)) p s) (Eq.{succ u2} G (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) (Prod.fst.{u2, u2} G G p) (Prod.snd.{u2, u2} G G p)) x)) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) f g) x) (Finset.sum.{u1, u2} k (Prod.{u2, u2} G G) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) s (fun (p : Prod.{u2, u2} G G) => HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.snd.{u2, u2} G G p)) ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) (instHMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (Prod.fst.{u2, u2} G G p)) _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f (Prod.fst.{u2, u2} G G p)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) g (Prod.snd.{u2, u2} G G p)))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mul_apply_antidiagonal AddMonoidAlgebra.mul_apply_antidiagonalₓ'. -/
 theorem mul_apply_antidiagonal [Add G] (f g : AddMonoidAlgebra k G) (x : G) (s : Finset (G × G))
     (hs : ∀ {p : G × G}, p ∈ s ↔ p.1 + p.2 = x) : (f * g) x = ∑ p in s, f p.1 * g p.2 :=
   @MonoidAlgebra.mul_apply_antidiagonal k (Multiplicative G) _ _ _ _ _ s @hs
 #align add_monoid_algebra.mul_apply_antidiagonal AddMonoidAlgebra.mul_apply_antidiagonal
 
+/- warning: add_monoid_algebra.single_mul_single -> AddMonoidAlgebra.single_mul_single is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] {a₁ : G} {a₂ : G} {b₁ : k} {b₂ : k}, Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a₁ b₁) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a₂ b₂)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) a₁ a₂) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) b₁ b₂))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] {a₁ : G} {a₂ : G} {b₁ : k} {b₂ : k}, Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 a₁ b₁) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 a₂ b₂)) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) a₁ a₂) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) b₁ b₂))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.single_mul_single AddMonoidAlgebra.single_mul_singleₓ'. -/
 theorem single_mul_single [Add G] {a₁ a₂ : G} {b₁ b₂ : k} :
     (single a₁ b₁ * single a₂ b₂ : AddMonoidAlgebra k G) = single (a₁ + a₂) (b₁ * b₂) :=
   @MonoidAlgebra.single_mul_single k (Multiplicative G) _ _ _ _ _ _
 #align add_monoid_algebra.single_mul_single AddMonoidAlgebra.single_mul_single
 
+/- warning: add_monoid_algebra.single_pow -> AddMonoidAlgebra.single_pow is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {a : G} {b : k} (n : Nat), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (HPow.hPow.{max u2 u1, 0, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) Nat (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHPow.{max u2 u1, 0} (AddMonoidAlgebra.{u1, u2} k G _inst_1) Nat (Monoid.Pow.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a b) n) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (SMul.smul.{0, u2} Nat G (AddMonoid.SMul.{u2} G _inst_2) n a) (HPow.hPow.{u1, 0, u1} k Nat k (instHPow.{u1, 0} k Nat (Monoid.Pow.{u1} k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) b n))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {a : G} {b : k} (n : Nat), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (HPow.hPow.{max u1 u2, 0, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) Nat (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHPow.{max u1 u2, 0} (AddMonoidAlgebra.{u1, u2} k G _inst_1) Nat (Monoid.Pow.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))))) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 a b) n) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 (HSMul.hSMul.{0, u2, u2} Nat G G (instHSMul.{0, u2} Nat G (AddMonoid.SMul.{u2} G _inst_2)) n a) (HPow.hPow.{u1, 0, u1} k Nat k (instHPow.{u1, 0} k Nat (Monoid.Pow.{u1} k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) b n))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.single_pow AddMonoidAlgebra.single_powₓ'. -/
 -- This should be a `@[simp]` lemma, but the simp_nf linter times out if we add this.
 -- Probably the correct fix is to make a `[add_]monoid_algebra.single` with the correct type,
 -- instead of relying on `finsupp.single`.
@@ -1311,6 +1737,12 @@ theorem single_pow [AddMonoid G] {a : G} {b : k} :
     rw [pow_succ, pow_succ, single_pow n, single_mul_single, add_comm, add_nsmul, one_nsmul]
 #align add_monoid_algebra.single_pow AddMonoidAlgebra.single_pow
 
+/- warning: add_monoid_algebra.map_domain_one -> AddMonoidAlgebra.mapDomain_one is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {α₂ : Type.{u3}} [_inst_2 : Semiring.{u2} β] [_inst_3 : Zero.{u1} α] [_inst_4 : Zero.{u3} α₂] {F : Type.{u4}} [_inst_5 : ZeroHomClass.{u4, u1, u3} F α α₂ _inst_3 _inst_4] (f : F), Eq.{max (succ u3) (succ u2)} (Finsupp.{u3, u2} α₂ β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))))))) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (ZeroHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) (OfNat.ofNat.{max u1 u2} (AddMonoidAlgebra.{u2, u1} β α _inst_2) 1 (OfNat.mk.{max u1 u2} (AddMonoidAlgebra.{u2, u1} β α _inst_2) 1 (One.one.{max u1 u2} (AddMonoidAlgebra.{u2, u1} β α _inst_2) (AddMonoidAlgebra.one.{u2, u1} β α _inst_2 _inst_3))))) (OfNat.ofNat.{max u3 u2} (AddMonoidAlgebra.{u2, u3} β α₂ _inst_2) 1 (OfNat.mk.{max u3 u2} (AddMonoidAlgebra.{u2, u3} β α₂ _inst_2) 1 (One.one.{max u3 u2} (AddMonoidAlgebra.{u2, u3} β α₂ _inst_2) (AddMonoidAlgebra.one.{u2, u3} β α₂ _inst_2 _inst_4))))
+but is expected to have type
+  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : Zero.{u4} α] [_inst_4 : Zero.{u2} α₂] {F : Type.{u1}} [_inst_5 : ZeroHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F), Eq.{max (succ u3) (succ u2)} (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.124 : α) => α₂) _x) (ZeroHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (OfNat.ofNat.{max u4 u3} (AddMonoidAlgebra.{u3, u4} β α _inst_2) 1 (One.toOfNat1.{max u4 u3} (AddMonoidAlgebra.{u3, u4} β α _inst_2) (AddMonoidAlgebra.one.{u3, u4} β α _inst_2 _inst_3)))) (OfNat.ofNat.{max u3 u2} (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) 1 (One.toOfNat1.{max u3 u2} (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.one.{u3, u2} β α₂ _inst_2 _inst_4)))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.map_domain_one AddMonoidAlgebra.mapDomain_oneₓ'. -/
 /-- Like `finsupp.map_domain_zero`, but for the `1` we define in this file -/
 @[simp]
 theorem mapDomain_one {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [Zero α] [Zero α₂]
@@ -1320,6 +1752,12 @@ theorem mapDomain_one {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β]
   by simp_rw [one_def, map_domain_single, map_zero]
 #align add_monoid_algebra.map_domain_one AddMonoidAlgebra.mapDomain_one
 
+/- warning: add_monoid_algebra.map_domain_mul -> AddMonoidAlgebra.mapDomain_mul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {α₂ : Type.{u3}} [_inst_2 : Semiring.{u2} β] [_inst_3 : Add.{u1} α] [_inst_4 : Add.{u3} α₂] {F : Type.{u4}} [_inst_5 : AddHomClass.{u4, u1, u3} F α α₂ _inst_3 _inst_4] (f : F) (x : AddMonoidAlgebra.{u2, u1} β α _inst_2) (y : AddMonoidAlgebra.{u2, u1} β α _inst_2), Eq.{max (succ u3) (succ u2)} (Finsupp.{u3, u2} α₂ β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))))))) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (AddHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u2, u1} β α _inst_2) (AddMonoidAlgebra.{u2, u1} β α _inst_2) (AddMonoidAlgebra.{u2, u1} β α _inst_2) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u2, u1} β α _inst_2) (AddMonoidAlgebra.hasMul.{u2, u1} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u3 u2, max u3 u2, max u3 u2} (AddMonoidAlgebra.{u2, u3} β α₂ _inst_2) (AddMonoidAlgebra.{u2, u3} β α₂ _inst_2) (AddMonoidAlgebra.{u2, u3} β α₂ _inst_2) (instHMul.{max u3 u2} (AddMonoidAlgebra.{u2, u3} β α₂ _inst_2) (AddMonoidAlgebra.hasMul.{u2, u3} β α₂ _inst_2 _inst_4)) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (AddHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) x) (Finsupp.mapDomain.{u1, u3, u2} α α₂ β (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} β (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} β (Semiring.toNonAssocSemiring.{u2} β _inst_2))) (coeFn.{succ u4, max (succ u1) (succ u3)} F (fun (_x : F) => α -> α₂) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} F α (fun (_x : α) => α₂) (AddHomClass.toFunLike.{u4, u1, u3} F α α₂ _inst_3 _inst_4 _inst_5)) f) y))
+but is expected to have type
+  forall {α : Type.{u4}} {β : Type.{u3}} {α₂ : Type.{u2}} [_inst_2 : Semiring.{u3} β] [_inst_3 : Add.{u4} α] [_inst_4 : Add.{u2} α₂] {F : Type.{u1}} [_inst_5 : AddHomClass.{u1, u4, u2} F α α₂ _inst_3 _inst_4] (f : F) (x : AddMonoidAlgebra.{u3, u4} β α _inst_2) (y : AddMonoidAlgebra.{u3, u4} β α _inst_2), Eq.{max (succ u3) (succ u2)} (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α₂) _x) (AddHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) (HMul.hMul.{max u4 u3, max u4 u3, max u4 u3} (AddMonoidAlgebra.{u3, u4} β α _inst_2) (AddMonoidAlgebra.{u3, u4} β α _inst_2) (AddMonoidAlgebra.{u3, u4} β α _inst_2) (instHMul.{max u4 u3} (AddMonoidAlgebra.{u3, u4} β α _inst_2) (AddMonoidAlgebra.hasMul.{u3, u4} β α _inst_2 _inst_3)) x y)) (HMul.hMul.{max u3 u2, max u3 u2, max u3 u2} (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (instHMul.{max u3 u2} (AddMonoidAlgebra.{u3, u2} β α₂ _inst_2) (AddMonoidAlgebra.hasMul.{u3, u2} β α₂ _inst_2 _inst_4)) (AddMonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α₂) _x) (AddHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) x) (AddMonoidAlgebra.mapDomain.{u3, u4, u2} β α _inst_2 α₂ (FunLike.coe.{succ u1, succ u4, succ u2} F α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α₂) _x) (AddHomClass.toFunLike.{u1, u4, u2} F α α₂ _inst_3 _inst_4 _inst_5) f) y))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.map_domain_mul AddMonoidAlgebra.mapDomain_mulₓ'. -/
 /-- Like `finsupp.map_domain_add`, but for the convolutive multiplication we define in this file -/
 theorem mapDomain_mul {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [Add α] [Add α₂]
     {F : Type _} [AddHomClass F α α₂] (f : F) (x y : AddMonoidAlgebra β α) :
@@ -1341,6 +1779,12 @@ section
 
 variable (k G)
 
+/- warning: add_monoid_algebra.of_magma -> AddMonoidAlgebra.ofMagma is a dubious translation:
+lean 3 declaration is
+  forall (k : Type.{u1}) (G : Type.{u2}) [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G], MulHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.hasMul.{u2} G _inst_2) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)
+but is expected to have type
+  forall (k : Type.{u1}) (G : Type.{u2}) [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G], MulHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mul.{u2} G _inst_2) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of_magma AddMonoidAlgebra.ofMagmaₓ'. -/
 /-- The embedding of an additive magma into its additive magma algebra. -/
 @[simps]
 def ofMagma [Add G] : Multiplicative G →ₙ* AddMonoidAlgebra k G
@@ -1349,37 +1793,71 @@ def ofMagma [Add G] : Multiplicative G →ₙ* AddMonoidAlgebra k G
   map_mul' a b := by simpa only [mul_def, mul_one, sum_single_index, single_eq_zero, mul_zero]
 #align add_monoid_algebra.of_magma AddMonoidAlgebra.ofMagma
 
+#print AddMonoidAlgebra.of /-
 /-- Embedding of a magma with zero into its magma algebra. -/
 def of [AddZeroClass G] : Multiplicative G →* AddMonoidAlgebra k G :=
   { ofMagma k G with
     toFun := fun a => single a 1
     map_one' := rfl }
 #align add_monoid_algebra.of AddMonoidAlgebra.of
+-/
 
+#print AddMonoidAlgebra.of' /-
 /-- Embedding of a magma with zero `G`, into its magma algebra, having `G` as source. -/
 def of' : G → AddMonoidAlgebra k G := fun a => single a 1
 #align add_monoid_algebra.of' AddMonoidAlgebra.of'
+-/
 
 end
 
+/- warning: add_monoid_algebra.of_apply -> AddMonoidAlgebra.of_apply is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : Multiplicative.{u2} G), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (fun (_x : Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) => (Multiplicative.{u2} G) -> G) (Equiv.hasCoeToFun.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) a) (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : Multiplicative.{u2} G), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a) (AddMonoidAlgebra.single.{u1, u2} k ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Multiplicative.{u2} G) => G) a) _inst_1 (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Multiplicative.{u2} G) => G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) a) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of_apply AddMonoidAlgebra.of_applyₓ'. -/
 @[simp]
 theorem of_apply [AddZeroClass G] (a : Multiplicative G) : of k G a = single a.toAdd 1 :=
   rfl
 #align add_monoid_algebra.of_apply AddMonoidAlgebra.of_apply
 
+/- warning: add_monoid_algebra.of'_apply -> AddMonoidAlgebra.of'_apply is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] (a : G), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.of'.{u1, u2} k G _inst_1 a) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] (a : G), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.of'.{u1, u2} k G _inst_1 a) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 a (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of'_apply AddMonoidAlgebra.of'_applyₓ'. -/
 @[simp]
 theorem of'_apply (a : G) : of' k G a = single a 1 :=
   rfl
 #align add_monoid_algebra.of'_apply AddMonoidAlgebra.of'_apply
 
+/- warning: add_monoid_algebra.of'_eq_of -> AddMonoidAlgebra.of'_eq_of is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : G), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.of'.{u1, u2} k G _inst_1 a) (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a)
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (a : G), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.of'.{u1, u2} k G _inst_1 a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_2) a)
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of'_eq_of AddMonoidAlgebra.of'_eq_ofₓ'. -/
 theorem of'_eq_of [AddZeroClass G] (a : G) : of' k G a = of k G a :=
   rfl
 #align add_monoid_algebra.of'_eq_of AddMonoidAlgebra.of'_eq_of
 
+/- warning: add_monoid_algebra.of_injective -> AddMonoidAlgebra.of_injective is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Nontrivial.{u1} k] [_inst_3 : AddZeroClass.{u2} G], Function.Injective.{succ u2, max (succ u2) (succ u1)} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_3))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Nontrivial.{u1} k] [_inst_3 : AddZeroClass.{u2} G], Function.Injective.{succ u2, max (succ u1) (succ u2)} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G _inst_3)) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G _inst_3) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 _inst_3))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of_injective AddMonoidAlgebra.of_injectiveₓ'. -/
 theorem of_injective [Nontrivial k] [AddZeroClass G] : Function.Injective (of k G) := fun a b h =>
   by simpa using (single_eq_single_iff _ _ _ _).mp h
 #align add_monoid_algebra.of_injective AddMonoidAlgebra.of_injective
 
+/- warning: add_monoid_algebra.single_hom -> AddMonoidAlgebra.singleHom is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G], MonoidHom.{max u1 u2, max u2 u1} (Prod.{u1, u2} k (Multiplicative.{u2} G)) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Prod.mulOneClass.{u1, u2} k (Multiplicative.{u2} G) (MulZeroOneClass.toMulOneClass.{u1} k (NonAssocSemiring.toMulZeroOneClass.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G], MonoidHom.{max u2 u1, max u2 u1} (Prod.{u1, u2} k (Multiplicative.{u2} G)) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Prod.instMulOneClassProd.{u1, u2} k (Multiplicative.{u2} G) (MulZeroOneClass.toMulOneClass.{u1} k (NonAssocSemiring.toMulZeroOneClass.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Multiplicative.mulOneClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 _inst_2)))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.single_hom AddMonoidAlgebra.singleHomₓ'. -/
 /-- `finsupp.single` as a `monoid_hom` from the product type into the additive monoid algebra.
 
 Note the order of the elements of the product are reversed compared to the arguments of
@@ -1393,42 +1871,90 @@ def singleHom [AddZeroClass G] : k × Multiplicative G →* AddMonoidAlgebra k G
   map_mul' a b := single_mul_single.symm
 #align add_monoid_algebra.single_hom AddMonoidAlgebra.singleHom
 
+/- warning: add_monoid_algebra.mul_single_apply_aux -> AddMonoidAlgebra.mul_single_apply_aux is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G) (y : G) (z : G), (forall (a : G), Iff (Eq.{succ u2} G (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) a x) z) (Eq.{succ u2} G a y)) -> (Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r)) z) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f y) r))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G) (y : G) (z : G), (forall (a : G), Iff (Eq.{succ u2} G (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) a x) z) (Eq.{succ u2} G a y)) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) z) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) f (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x r)) z) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (instHMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f y) r))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mul_single_apply_aux AddMonoidAlgebra.mul_single_apply_auxₓ'. -/
 theorem mul_single_apply_aux [Add G] (f : AddMonoidAlgebra k G) (r : k) (x y z : G)
     (H : ∀ a, a + x = z ↔ a = y) : (f * single x r) z = f y * r :=
   @MonoidAlgebra.mul_single_apply_aux k (Multiplicative G) _ _ _ _ _ _ _ H
 #align add_monoid_algebra.mul_single_apply_aux AddMonoidAlgebra.mul_single_apply_aux
 
+/- warning: add_monoid_algebra.mul_single_zero_apply -> AddMonoidAlgebra.mul_single_zero_apply is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G), Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G _inst_2))) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G _inst_2)))) r)) x) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f x) r)
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G _inst_2))) f (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 (OfNat.ofNat.{u2} G 0 (Zero.toOfNat0.{u2} G (AddZeroClass.toZero.{u2} G _inst_2))) r)) x) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (instHMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f x) r)
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mul_single_zero_apply AddMonoidAlgebra.mul_single_zero_applyₓ'. -/
 theorem mul_single_zero_apply [AddZeroClass G] (f : AddMonoidAlgebra k G) (r : k) (x : G) :
     (f * single 0 r) x = f x * r :=
   f.mul_single_apply_aux r _ _ _ fun a => by rw [add_zero]
 #align add_monoid_algebra.mul_single_zero_apply AddMonoidAlgebra.mul_single_zero_apply
 
+/- warning: add_monoid_algebra.single_mul_apply_aux -> AddMonoidAlgebra.single_mul_apply_aux is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G) (y : G) (z : G), (forall (a : G), Iff (Eq.{succ u2} G (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) x a) y) (Eq.{succ u2} G a z)) -> (Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r) f) y) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) r (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f z)))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G) (y : G) (z : G), (forall (a : G), Iff (Eq.{succ u2} G (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G _inst_2) x a) y) (Eq.{succ u2} G a z)) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2)) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x r) f) y) (HMul.hMul.{u1, u1, u1} k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) z) k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) r (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f z)))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.single_mul_apply_aux AddMonoidAlgebra.single_mul_apply_auxₓ'. -/
 theorem single_mul_apply_aux [Add G] (f : AddMonoidAlgebra k G) (r : k) (x y z : G)
     (H : ∀ a, x + a = y ↔ a = z) : (single x r * f : AddMonoidAlgebra k G) y = r * f z :=
   @MonoidAlgebra.single_mul_apply_aux k (Multiplicative G) _ _ _ _ _ _ _ H
 #align add_monoid_algebra.single_mul_apply_aux AddMonoidAlgebra.single_mul_apply_aux
 
+/- warning: add_monoid_algebra.single_zero_mul_apply -> AddMonoidAlgebra.single_zero_mul_apply is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G), Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G _inst_2))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G _inst_2)))) r) f) x) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) r (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f x))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddZeroClass.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G _inst_2))) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 (OfNat.ofNat.{u2} G 0 (Zero.toOfNat0.{u2} G (AddZeroClass.toZero.{u2} G _inst_2))) r) f) x) (HMul.hMul.{u1, u1, u1} k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) x) k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) r (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f x))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.single_zero_mul_apply AddMonoidAlgebra.single_zero_mul_applyₓ'. -/
 theorem single_zero_mul_apply [AddZeroClass G] (f : AddMonoidAlgebra k G) (r : k) (x : G) :
     (single 0 r * f : AddMonoidAlgebra k G) x = r * f x :=
   f.single_mul_apply_aux r _ _ _ fun a => by rw [zero_add]
 #align add_monoid_algebra.single_zero_mul_apply AddMonoidAlgebra.single_zero_mul_apply
 
+/- warning: add_monoid_algebra.mul_single_apply -> AddMonoidAlgebra.mul_single_apply is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddGroup.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G) (y : G), Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2)))))) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r)) y) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f (HSub.hSub.{u2, u2, u2} G G G (instHSub.{u2} G (SubNegMonoid.toHasSub.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))) y x)) r)
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddGroup.{u2} G] (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (r : k) (x : G) (y : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2)))))) f (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x r)) y) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HSub.hSub.{u2, u2, u2} G G G (instHSub.{u2} G (SubNegMonoid.toSub.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))) y x)) k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HSub.hSub.{u2, u2, u2} G G G (instHSub.{u2} G (SubNegMonoid.toSub.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))) y x)) (instHMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HSub.hSub.{u2, u2, u2} G G G (instHSub.{u2} G (SubNegMonoid.toSub.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))) y x)) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HSub.hSub.{u2, u2, u2} G G G (instHSub.{u2} G (SubNegMonoid.toSub.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))) y x)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HSub.hSub.{u2, u2, u2} G G G (instHSub.{u2} G (SubNegMonoid.toSub.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))) y x)) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HSub.hSub.{u2, u2, u2} G G G (instHSub.{u2} G (SubNegMonoid.toSub.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))) y x)) _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f (HSub.hSub.{u2, u2, u2} G G G (instHSub.{u2} G (SubNegMonoid.toSub.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))) y x)) r)
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mul_single_apply AddMonoidAlgebra.mul_single_applyₓ'. -/
 theorem mul_single_apply [AddGroup G] (f : AddMonoidAlgebra k G) (r : k) (x y : G) :
     (f * single x r) y = f (y - x) * r :=
   (sub_eq_add_neg y x).symm ▸ @MonoidAlgebra.mul_single_apply k (Multiplicative G) _ _ _ _ _ _
 #align add_monoid_algebra.mul_single_apply AddMonoidAlgebra.mul_single_apply
 
+/- warning: add_monoid_algebra.single_mul_apply -> AddMonoidAlgebra.single_mul_apply is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddGroup.{u2} G] (r : k) (x : G) (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (y : G), Eq.{succ u1} k (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2)))))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r) f) y) (HMul.hMul.{u1, u1, u1} k k k (instHMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) r (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => G -> k) (AddMonoidAlgebra.coeFun.{u1, u2} k G _inst_1) f (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))))) (Neg.neg.{u2} G (SubNegMonoid.toHasNeg.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2)) x) y)))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddGroup.{u2} G] (r : k) (x : G) (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (y : G), Eq.{succ u1} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) y) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2)))))) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x r) f) y) (HMul.hMul.{u1, u1, u1} k ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))))) (Neg.neg.{u2} G (NegZeroClass.toNeg.{u2} G (SubNegZeroMonoid.toNegZeroClass.{u2} G (SubtractionMonoid.toSubNegZeroMonoid.{u2} G (AddGroup.toSubtractionMonoid.{u2} G _inst_2)))) x) y)) k (instHMul.{u1} k (NonUnitalNonAssocSemiring.toMul.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) r (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) G (fun (_x : G) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : G) => k) _x) (Finsupp.funLike.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1))) f (HAdd.hAdd.{u2, u2, u2} G G G (instHAdd.{u2} G (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G _inst_2))))) (Neg.neg.{u2} G (NegZeroClass.toNeg.{u2} G (SubNegZeroMonoid.toNegZeroClass.{u2} G (SubtractionMonoid.toSubNegZeroMonoid.{u2} G (AddGroup.toSubtractionMonoid.{u2} G _inst_2)))) x) y)))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.single_mul_apply AddMonoidAlgebra.single_mul_applyₓ'. -/
 theorem single_mul_apply [AddGroup G] (r : k) (x : G) (f : AddMonoidAlgebra k G) (y : G) :
     (single x r * f : AddMonoidAlgebra k G) y = r * f (-x + y) :=
   @MonoidAlgebra.single_mul_apply k (Multiplicative G) _ _ _ _ _ _
 #align add_monoid_algebra.single_mul_apply AddMonoidAlgebra.single_mul_apply
 
-theorem liftNc_smul {R : Type _} [AddZeroClass G] [Semiring R] (f : k →+* R)
+/- warning: add_monoid_algebra.lift_nc_smul -> AddMonoidAlgebra.liftNC_smul is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] {R : Type.{u3}} [_inst_2 : AddZeroClass.{u2} G] [_inst_3 : Semiring.{u3} R] (f : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (g : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u1, u2} k G _inst_1), Eq.{succ u3} R (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => (Multiplicative.{u2} G) -> R) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) (SMul.smul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) c φ)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => k -> R) (RingHom.hasCoeToFun.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f c) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ (max u2 u1)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (fun (_x : AddMonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (AddMonoidHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1))) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidAlgebra.liftNC.{u1, u2, u3} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u3) (succ u1)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u3) (succ u1)} a b] => self.0) (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u3) (succ u1)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidHom.{u1, u3} k R (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) (AddMonoidHom.hasCoeT.{u1, u3, max u1 u3} k R (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u1 u3, u1, u3} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) => (Multiplicative.{u2} G) -> R) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G _inst_2) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) g)) φ))
+but is expected to have type
+  forall {k : Type.{u2}} {G : Type.{u3}} [_inst_1 : Semiring.{u2} k] {R : Type.{u1}} [_inst_2 : AddZeroClass.{u3} G] [_inst_3 : Semiring.{u1} R] (f : RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (g : MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (c : k) (φ : MonoidAlgebra.{u2, u3} k G _inst_1), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) (fun (_x : Multiplicative.{u3} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u3} G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (MulOneClass.toMul.{u3} (Multiplicative.{u3} G) (Multiplicative.mulOneClass.{u3} G _inst_2)) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) (HSMul.hSMul.{u2, max u2 u3, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.{u2, u3} k G _inst_1) (instHSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (SMulZeroClass.toSMul.{u2, max u2 u3} k (MonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toZero.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (MonoidAlgebra.{u2, u3} k G _inst_1) (MonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (MonoidAlgebra.smulZeroClass.{u2, u3, u2} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u2, u2} k k (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MonoidWithZero.toZero.{u2} k (Semiring.toMonoidWithZero.{u2} k _inst_1)) (MulZeroClass.toSMulWithZero.{u2} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)))))))) c φ)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) φ) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) c) _inst_3)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => R) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f c) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (AddHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddZeroClass.toAdd.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1)))) (AddZeroClass.toAdd.{u1} R (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u1, max u2 u3, u1} (AddMonoidHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoid.toAddZeroClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u3} k G _inst_1))) (AddMonoid.toAddZeroClass.{u1} R (AddCommMonoid.toAddMonoid.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))))) (AddMonoidAlgebra.liftNC.{u2, u3, u1} k G R _inst_1 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} k R (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoid.toAddZeroClass.{u2} k (AddMonoidWithOne.toAddMonoid.{u2} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} k (NonAssocSemiring.toAddCommMonoidWithOne.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_1))))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) (RingHomClass.toAddMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) (fun (_x : Multiplicative.{u3} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u3} G) => R) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (MulOneClass.toMul.{u3} (Multiplicative.{u3} G) (Multiplicative.mulOneClass.{u3} G _inst_2)) (MulOneClass.toMul.{u1} R (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHom.monoidHomClass.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G _inst_2) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))))) g)) φ))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_smul AddMonoidAlgebra.liftNC_smulₓ'. -/
+theorem liftNC_smul {R : Type _} [AddZeroClass G] [Semiring R] (f : k →+* R)
     (g : Multiplicative G →* R) (c : k) (φ : MonoidAlgebra k G) :
-    liftNc (f : k →+ R) g (c • φ) = f c * liftNc (f : k →+ R) g φ :=
-  @MonoidAlgebra.liftNc_smul k (Multiplicative G) _ _ _ _ f g c φ
-#align add_monoid_algebra.lift_nc_smul AddMonoidAlgebra.liftNc_smul
-
+    liftNC (f : k →+ R) g (c • φ) = f c * liftNC (f : k →+ R) g φ :=
+  @MonoidAlgebra.liftNC_smul k (Multiplicative G) _ _ _ _ f g c φ
+#align add_monoid_algebra.lift_nc_smul AddMonoidAlgebra.liftNC_smul
+
+/- warning: add_monoid_algebra.induction_on -> AddMonoidAlgebra.induction_on is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {p : (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ u2) (succ (max u2 u1))} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (fun (_x : MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) => (Multiplicative.{u2} G) -> (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (MonoidHom.hasCoeToFun.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (fun (_x : Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) => G -> (Multiplicative.{u2} G)) (Equiv.hasCoeToFun.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) g))) -> (forall (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toHasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (SMul.smul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u1, max u2 u1} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSmulZeroClass.{u1, u1} k k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) r f))) -> (p f)
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {p : (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> Prop} (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (forall (g : G), p (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u2} G) => AddMonoidAlgebra.{u1, u2} k G _inst_1) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))))))) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) G (fun (_x : G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : G) => Multiplicative.{u2} G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} G (Multiplicative.{u2} G)) (Multiplicative.ofAdd.{u2} G) g))) -> (forall (f : AddMonoidAlgebra.{u1, u2} k G _inst_1) (g : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p g) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)))))) f g))) -> (forall (r : k) (f : AddMonoidAlgebra.{u1, u2} k G _inst_1), (p f) -> (p (HSMul.hSMul.{u1, max u1 u2, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (instHSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidWithZero.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Semiring.toMonoidWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_1 _inst_2))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u1} k G k _inst_1 (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) r f))) -> (p f)
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.induction_on AddMonoidAlgebra.induction_onₓ'. -/
 theorem induction_on [AddMonoid G] {p : AddMonoidAlgebra k G → Prop} (f : AddMonoidAlgebra k G)
     (hM : ∀ g, p (of k G (Multiplicative.ofAdd g)))
     (hadd : ∀ f g : AddMonoidAlgebra k G, p f → p g → p (f + g))
@@ -1440,6 +1966,7 @@ theorem induction_on [AddMonoid G] {p : AddMonoidAlgebra k G → Prop} (f : AddM
     simp only [mul_one, toAdd_ofAdd, smul_single', of_apply]
 #align add_monoid_algebra.induction_on AddMonoidAlgebra.induction_on
 
+#print AddMonoidAlgebra.mapDomainRingHom /-
 /-- If `f : G → H` is an additive homomorphism between two additive monoids, then
 `finsupp.map_domain f` is a ring homomorphism between their add monoid algebras. -/
 @[simps]
@@ -1452,6 +1979,7 @@ def mapDomainRingHom (k : Type _) [Semiring k] {H F : Type _} [AddMonoid G] [Add
     map_one' := mapDomain_one f
     map_mul' := fun x y => mapDomain_mul f x y }
 #align add_monoid_algebra.map_domain_ring_hom AddMonoidAlgebra.mapDomainRingHom
+-/
 
 end MiscTheorems
 
@@ -1467,6 +1995,12 @@ but for now we just contruct the ring isomorphisms using `ring_equiv.refl _`.
 -/
 
 
+/- warning: add_monoid_algebra.to_multiplicative -> AddMonoidAlgebra.toMultiplicative is a dubious translation:
+lean 3 declaration is
+  forall (k : Type.{u1}) (G : Type.{u2}) [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G], RingEquiv.{max u2 u1, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k (Multiplicative.{u2} G) _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2) (Distrib.toHasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (MonoidAlgebra.mul.{u1, u2} k (Multiplicative.{u2} G) _inst_1 (Multiplicative.hasMul.{u2} G _inst_2)) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k (Multiplicative.{u2} G) _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k (Multiplicative.{u2} G) _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k (Multiplicative.{u2} G) _inst_1 (Multiplicative.hasMul.{u2} G _inst_2))))
+but is expected to have type
+  forall (k : Type.{u1}) (G : Type.{u2}) [_inst_1 : Semiring.{u1} k] [_inst_2 : Add.{u2} G], RingEquiv.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.{u1, u2} k (Multiplicative.{u2} G) _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_2) (MonoidAlgebra.mul.{u1, u2} k (Multiplicative.{u2} G) _inst_1 (Multiplicative.mul.{u2} G _inst_2)) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k (Multiplicative.{u2} G) _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k (Multiplicative.{u2} G) _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k (Multiplicative.{u2} G) _inst_1 (Multiplicative.mul.{u2} G _inst_2))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.to_multiplicative AddMonoidAlgebra.toMultiplicativeₓ'. -/
 /-- The equivalence between `add_monoid_algebra` and `monoid_algebra` in terms of
 `multiplicative` -/
 protected def AddMonoidAlgebra.toMultiplicative [Semiring k] [Add G] :
@@ -1481,6 +2015,12 @@ protected def AddMonoidAlgebra.toMultiplicative [Semiring k] [Add G] :
       convert MonoidAlgebra.mapDomain_mul (MulHom.id (Multiplicative G)) _ _ }
 #align add_monoid_algebra.to_multiplicative AddMonoidAlgebra.toMultiplicative
 
+/- warning: monoid_algebra.to_additive -> MonoidAlgebra.toAdditive is a dubious translation:
+lean 3 declaration is
+  forall (k : Type.{u1}) (G : Type.{u2}) [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G], RingEquiv.{max u1 u2, max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k (Additive.{u2} G) _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2) (Distrib.toHasAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (AddMonoidAlgebra.hasMul.{u1, u2} k (Additive.{u2} G) _inst_1 (Additive.hasAdd.{u2} G _inst_2)) (Distrib.toHasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k (Additive.{u2} G) _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k (Additive.{u2} G) _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k (Additive.{u2} G) _inst_1 (Additive.hasAdd.{u2} G _inst_2))))
+but is expected to have type
+  forall (k : Type.{u1}) (G : Type.{u2}) [_inst_1 : Semiring.{u1} k] [_inst_2 : Mul.{u2} G], RingEquiv.{max u2 u1, max u2 u1} (MonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k (Additive.{u2} G) _inst_1) (MonoidAlgebra.mul.{u1, u2} k G _inst_1 _inst_2) (AddMonoidAlgebra.hasMul.{u1, u2} k (Additive.{u2} G) _inst_1 (Additive.add.{u2} G _inst_2)) (Distrib.toAdd.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_1) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_2))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k (Additive.{u2} G) _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k (Additive.{u2} G) _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k (Additive.{u2} G) _inst_1 (Additive.add.{u2} G _inst_2))))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.to_additive MonoidAlgebra.toAdditiveₓ'. -/
 /-- The equivalence between `monoid_algebra` and `add_monoid_algebra` in terms of `additive` -/
 protected def MonoidAlgebra.toAdditive [Semiring k] [Mul G] :
     MonoidAlgebra k G ≃+* AddMonoidAlgebra k (Additive G) :=
@@ -1504,11 +2044,23 @@ section NonUnitalNonAssocAlgebra
 
 variable (k) [Semiring k] [DistribSMul R k] [Add G]
 
+/- warning: add_monoid_algebra.is_scalar_tower_self -> AddMonoidAlgebra.isScalarTower_self is a dubious translation:
+lean 3 declaration is
+  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Add.{u2} G] [_inst_4 : IsScalarTower.{u3, u1, u1} R k k (SMulZeroClass.toHasSmul.{u3, u1} R k (AddZeroClass.toHasZero.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)) (Mul.toSMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (SMulZeroClass.toHasSmul.{u3, u1} R k (AddZeroClass.toHasZero.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))], IsScalarTower.{u3, max u2 u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))) (Mul.toSMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_3)) (SMulZeroClass.toHasSmul.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)))
+but is expected to have type
+  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Add.{u2} G] [_inst_4 : IsScalarTower.{u3, u1, u1} R k k (SMulZeroClass.toSMul.{u3, u1} R k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)) (SMulZeroClass.toSMul.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (SMulZeroClass.toSMul.{u3, u1} R k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))], IsScalarTower.{u3, max u2 u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u3, max u1 u2} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))) (SMulZeroClass.toSMul.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (SMulWithZero.toSMulZeroClass.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toSMulWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))))) (SMulZeroClass.toSMul.{u3, max u1 u2} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.is_scalar_tower_self AddMonoidAlgebra.isScalarTower_selfₓ'. -/
 instance isScalarTower_self [IsScalarTower R k k] :
     IsScalarTower R (AddMonoidAlgebra k G) (AddMonoidAlgebra k G) :=
   @MonoidAlgebra.isScalarTower_self k (Multiplicative G) R _ _ _ _
 #align add_monoid_algebra.is_scalar_tower_self AddMonoidAlgebra.isScalarTower_self
 
+/- warning: add_monoid_algebra.smul_comm_class_self -> AddMonoidAlgebra.sMulCommClass_self is a dubious translation:
+lean 3 declaration is
+  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Add.{u2} G] [_inst_4 : SMulCommClass.{u3, u1, u1} R k k (SMulZeroClass.toHasSmul.{u3, u1} R k (AddZeroClass.toHasZero.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)) (Mul.toSMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))], SMulCommClass.{u3, max u2 u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toHasSmul.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))) (Mul.toSMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_3))
+but is expected to have type
+  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Add.{u2} G] [_inst_4 : SMulCommClass.{u3, u1, u1} R k k (SMulZeroClass.toSMul.{u3, u1} R k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)) (SMulZeroClass.toSMul.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))], SMulCommClass.{u3, max u2 u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{u3, max u1 u2} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))) (SMulZeroClass.toSMul.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (SMulWithZero.toSMulZeroClass.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toSMulWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.smul_comm_class_self AddMonoidAlgebra.sMulCommClass_selfₓ'. -/
 /-- Note that if `k` is a `comm_semiring` then we have `smul_comm_class k k k` and so we can take
 `R = k` in the below. In other words, if the coefficients are commutative amongst themselves, they
 also commute with the algebra multiplication. -/
@@ -1517,6 +2069,12 @@ instance sMulCommClass_self [SMulCommClass R k k] :
   @MonoidAlgebra.sMulCommClass_self k (Multiplicative G) R _ _ _ _
 #align add_monoid_algebra.smul_comm_class_self AddMonoidAlgebra.sMulCommClass_self
 
+/- warning: add_monoid_algebra.smul_comm_class_symm_self -> AddMonoidAlgebra.sMulCommClass_symm_self is a dubious translation:
+lean 3 declaration is
+  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Add.{u2} G] [_inst_4 : SMulCommClass.{u1, u3, u1} k R k (Mul.toSMul.{u1} k (Distrib.toHasMul.{u1} k (NonUnitalNonAssocSemiring.toDistrib.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) (SMulZeroClass.toHasSmul.{u3, u1} R k (AddZeroClass.toHasZero.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))], SMulCommClass.{max u2 u1, u3, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Mul.toSMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 _inst_3)) (SMulZeroClass.toHasSmul.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddZeroClass.toHasZero.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} k G _inst_1)))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSmulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)))
+but is expected to have type
+  forall (k : Type.{u1}) {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : DistribSMul.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))] [_inst_3 : Add.{u2} G] [_inst_4 : SMulCommClass.{u1, u3, u1} k R k (SMulZeroClass.toSMul.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (SMulWithZero.toSMulZeroClass.{u1, u1} k k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toSMulWithZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))) (SMulZeroClass.toSMul.{u3, u1} R k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2))], SMulCommClass.{max u2 u1, u3, max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (SMulZeroClass.toSMul.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (SMulWithZero.toSMulZeroClass.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (MulZeroClass.toSMulWithZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))))) (SMulZeroClass.toSMul.{u3, max u1 u2} R (AddMonoidAlgebra.{u1, u2} k G _inst_1) (MulZeroClass.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (AddMonoidAlgebra.smulZeroClass.{u1, u2, u3} k G R _inst_1 (DistribSMul.toSMulZeroClass.{u3, u1} R k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))) _inst_2)))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.smul_comm_class_symm_self AddMonoidAlgebra.sMulCommClass_symm_selfₓ'. -/
 instance sMulCommClass_symm_self [SMulCommClass k R k] :
     SMulCommClass (AddMonoidAlgebra k G) R (AddMonoidAlgebra k G) :=
   @MonoidAlgebra.sMulCommClass_symm_self k (Multiplicative G) R _ _ _ _
@@ -1524,6 +2082,12 @@ instance sMulCommClass_symm_self [SMulCommClass k R k] :
 
 variable {A : Type u₃} [NonUnitalNonAssocSemiring A]
 
+/- warning: add_monoid_algebra.non_unital_alg_hom_ext -> AddMonoidAlgebra.nonUnitalAlgHom_ext is a dubious translation:
+lean 3 declaration is
+  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Add.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (forall (x : G), Eq.{succ u3} A (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (fun (_x : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))) (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (fun (_x : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₂ (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))))) -> (Eq.{max (succ (max u2 u1)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
+but is expected to have type
+  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Add.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (forall (x : G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : AddMonoidAlgebra.{u1, u2} k G _inst_1) => A) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : AddMonoidAlgebra.{u1, u2} k G _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) (AddMonoidAlgebra.{u1, u2} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u1, u2} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : AddMonoidAlgebra.{u1, u2} k G _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₂ (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k _inst_1)))))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.non_unital_alg_hom_ext AddMonoidAlgebra.nonUnitalAlgHom_extₓ'. -/
 /-- A non_unital `k`-algebra homomorphism from `add_monoid_algebra k G` is uniquely defined by its
 values on the functions `single a 1`. -/
 theorem nonUnitalAlgHom_ext [DistribMulAction k A] {φ₁ φ₂ : AddMonoidAlgebra k G →ₙₐ[k] A}
@@ -1531,6 +2095,12 @@ theorem nonUnitalAlgHom_ext [DistribMulAction k A] {φ₁ φ₂ : AddMonoidAlgeb
   @MonoidAlgebra.nonUnitalAlgHom_ext k (Multiplicative G) _ _ _ _ _ φ₁ φ₂ h
 #align add_monoid_algebra.non_unital_alg_hom_ext AddMonoidAlgebra.nonUnitalAlgHom_ext
 
+/- warning: add_monoid_algebra.non_unital_alg_hom_ext' -> AddMonoidAlgebra.nonUnitalAlgHom_ext' is a dubious translation:
+lean 3 declaration is
+  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Add.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (Eq.{max (succ u3) (succ u2)} (MulHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.hasMul.{u2} G _inst_3) (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4))) (MulHom.comp.{u2, max u2 u1, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (Multiplicative.hasMul.{u2} G _inst_3) (Distrib.toHasMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4)) (NonUnitalAlgHom.toMulHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5 φ₁) (AddMonoidAlgebra.ofMagma.{u1, u2} k G _inst_1 _inst_3)) (MulHom.comp.{u2, max u2 u1, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (Multiplicative.hasMul.{u2} G _inst_3) (Distrib.toHasMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3))) (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4)) (NonUnitalAlgHom.toMulHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5 φ₂) (AddMonoidAlgebra.ofMagma.{u1, u2} k G _inst_1 _inst_3))) -> (Eq.{max (succ (max u2 u1)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
+but is expected to have type
+  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Add.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : DistribMulAction.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4))] {φ₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5} {φ₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5}, (Eq.{max (succ u2) (succ u3)} (MulHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mul.{u2} G _inst_3) (NonUnitalNonAssocSemiring.toMul.{u3} A _inst_4)) (MulHom.comp.{u2, max u1 u2, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (Multiplicative.mul.{u2} G _inst_3) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)) (NonUnitalNonAssocSemiring.toMul.{u3} A _inst_4) (NonUnitalAlgHom.toMulHom.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5 φ₁) (AddMonoidAlgebra.ofMagma.{u1, u2} k G _inst_1 _inst_3)) (MulHom.comp.{u2, max u1 u2, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (Multiplicative.mul.{u2} G _inst_3) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3)) (NonUnitalNonAssocSemiring.toMul.{u3} A _inst_4) (NonUnitalAlgHom.toMulHom.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5 φ₂) (AddMonoidAlgebra.ofMagma.{u1, u2} k G _inst_1 _inst_3))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 _inst_5) φ₁ φ₂)
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.non_unital_alg_hom_ext' AddMonoidAlgebra.nonUnitalAlgHom_ext'ₓ'. -/
 /-- See note [partially-applied ext lemmas]. -/
 @[ext]
 theorem nonUnitalAlgHom_ext' [DistribMulAction k A] {φ₁ φ₂ : AddMonoidAlgebra k G →ₙₐ[k] A}
@@ -1538,6 +2108,12 @@ theorem nonUnitalAlgHom_ext' [DistribMulAction k A] {φ₁ φ₂ : AddMonoidAlge
   @MonoidAlgebra.nonUnitalAlgHom_ext' k (Multiplicative G) _ _ _ _ _ φ₁ φ₂ h
 #align add_monoid_algebra.non_unital_alg_hom_ext' AddMonoidAlgebra.nonUnitalAlgHom_ext'
 
+/- warning: add_monoid_algebra.lift_magma -> AddMonoidAlgebra.liftMagma is a dubious translation:
+lean 3 declaration is
+  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Add.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : Module.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)] [_inst_6 : IsScalarTower.{u1, u3, u3} k A A (SMulZeroClass.toHasSmul.{u1, u3} k A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} k A (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4))) (SMulZeroClass.toHasSmul.{u1, u3} k A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} k A (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5))))] [_inst_7 : SMulCommClass.{u1, u3, u3} k A A (SMulZeroClass.toHasSmul.{u1, u3} k A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} k A (MulZeroClass.toHasZero.{u1} k (MulZeroOneClass.toMulZeroClass.{u1} k (MonoidWithZero.toMulZeroOneClass.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)))) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4)))], Equiv.{max (succ u3) (succ u2), max (succ (max u2 u1)) (succ u3)} (MulHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.hasMul.{u2} G _inst_3) (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_4))) (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 (Module.toDistribMulAction.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5))
+but is expected to have type
+  forall (k : Type.{u1}) {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_3 : Add.{u2} G] {A : Type.{u3}} [_inst_4 : NonUnitalNonAssocSemiring.{u3} A] [_inst_5 : Module.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4)] [_inst_6 : IsScalarTower.{u1, u3, u3} k A A (SMulZeroClass.toSMul.{u1, u3} k A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u1, u3} k A (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)))) (SMulZeroClass.toSMul.{u1, u3} k A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u1, u3} k A (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5))))] [_inst_7 : SMulCommClass.{u1, u3, u3} k A A (SMulZeroClass.toSMul.{u1, u3} k A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u1, u3} k A (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} k A (Semiring.toMonoidWithZero.{u1} k _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (Module.toMulActionWithZero.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_4))))], Equiv.{max (succ u3) (succ u2), max (succ u3) (succ (max u2 u1))} (MulHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mul.{u2} G _inst_3) (NonUnitalNonAssocSemiring.toMul.{u3} A _inst_4)) (NonUnitalAlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 _inst_3) (AddMonoidAlgebra.distribMulAction.{u1, u2, u1} k G k (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} k k _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))) (Semiring.toModule.{u1} k _inst_1))) _inst_4 (Module.toDistribMulAction.{u1, u3} k A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_4) _inst_5))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_magma AddMonoidAlgebra.liftMagmaₓ'. -/
 /-- The functor `G ↦ add_monoid_algebra k G`, from the category of magmas to the category of
 non-unital, non-associative algebras over `k` is adjoint to the forgetful functor in the other
 direction. -/
@@ -1564,6 +2140,7 @@ section Algebra
 
 attribute [local reducible] AddMonoidAlgebra
 
+#print AddMonoidAlgebra.singleZeroRingHom /-
 /-- `finsupp.single 0` as a `ring_hom` -/
 @[simps]
 def singleZeroRingHom [Semiring k] [AddMonoid G] : k →+* AddMonoidAlgebra k G :=
@@ -1571,7 +2148,14 @@ def singleZeroRingHom [Semiring k] [AddMonoid G] : k →+* AddMonoidAlgebra k G
     map_one' := rfl
     map_mul' := fun x y => by rw [single_add_hom, single_mul_single, zero_add] }
 #align add_monoid_algebra.single_zero_ring_hom AddMonoidAlgebra.singleZeroRingHom
+-/
 
+/- warning: add_monoid_algebra.ring_hom_ext -> AddMonoidAlgebra.ringHom_ext is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] {f : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)} {g : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)}, (forall (b : k), Eq.{succ u3} R (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) b)) (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))))) b))) -> (forall (a : G), Eq.{succ u3} R (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))))) (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (fun (_x : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) => (AddMonoidAlgebra.{u1, u2} k G _inst_1) -> R) (RingHom.hasCoeToFun.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) g (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) a (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))))) -> (Eq.{max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f g)
+but is expected to have type
+  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : AddMonoid.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (forall (b : k), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_2))) b))) -> (forall (a : G), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) f (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1))))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) (fun (_x : AddMonoidAlgebra.{u2, u3} k G _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : AddMonoidAlgebra.{u2, u3} k G _inst_1) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))))) g (AddMonoidAlgebra.single.{u2, u3} k G _inst_1 a (OfNat.ofNat.{u2} k 1 (One.toOfNat1.{u2} k (Semiring.toOne.{u2} k _inst_1)))))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.ring_hom_ext AddMonoidAlgebra.ringHom_extₓ'. -/
 /-- If two ring homomorphisms from `add_monoid_algebra k G` are equal on all `single a 1`
 and `single 0 b`, then they are equal. -/
 theorem ringHom_ext {R} [Semiring k] [AddMonoid G] [Semiring R] {f g : AddMonoidAlgebra k G →+* R}
@@ -1580,6 +2164,12 @@ theorem ringHom_ext {R} [Semiring k] [AddMonoid G] [Semiring R] {f g : AddMonoid
   @MonoidAlgebra.ringHom_ext k (Multiplicative G) R _ _ _ _ _ h₀ h_of
 #align add_monoid_algebra.ring_hom_ext AddMonoidAlgebra.ringHom_ext
 
+/- warning: add_monoid_algebra.ring_hom_ext' -> AddMonoidAlgebra.ringHom_ext' is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] [_inst_3 : Semiring.{u3} R] {f : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)} {g : RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)}, (Eq.{max (succ u1) (succ u3)} (RingHom.{u1, u3} k R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (RingHom.comp.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3) f (AddMonoidAlgebra.singleZeroRingHom.{u1, u2} k G _inst_1 _inst_2)) (RingHom.comp.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (Semiring.toNonAssocSemiring.{u1} k _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3) g (AddMonoidAlgebra.singleZeroRingHom.{u1, u2} k G _inst_1 _inst_2))) -> (Eq.{max (succ u3) (succ u2)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHom.comp.{u2, max u2 u1, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) ((fun (a : Sort.{max (succ (max u2 u1)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u2 u1))}) [self : HasLiftT.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} a b] => self.0) (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (HasLiftT.mk.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (CoeTCₓ.coe.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHom.hasCoeT.{max u2 u1, u3, max (max u2 u1) u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u2 u1) u3, max u2 u1, u3} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) f) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MonoidHom.comp.{u2, max u2 u1, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) ((fun (a : Sort.{max (succ (max u2 u1)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u2 u1))}) [self : HasLiftT.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} a b] => self.0) (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (HasLiftT.mk.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (CoeTCₓ.coe.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3)))) (MonoidHom.hasCoeT.{max u2 u1, u3, max (max u2 u1) u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} R (NonAssocSemiring.toMulZeroOneClass.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u2 u1) u3, max u2 u1, u3} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3) (RingHom.ringHomClass.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)))))) g) (AddMonoidAlgebra.of.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) -> (Eq.{max (succ (max u2 u1)) (succ u3)} (RingHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_1 (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} R _inst_3)) f g)
+but is expected to have type
+  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : Semiring.{u2} k] [_inst_2 : AddMonoid.{u3} G] [_inst_3 : Semiring.{u1} R] {f : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)} {g : RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)}, (Eq.{max (succ u2) (succ u1)} (RingHom.{u2, u1} k R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (RingHom.comp.{u2, max u2 u3, u1} k (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) f (AddMonoidAlgebra.singleZeroRingHom.{u2, u3} k G _inst_1 _inst_2)) (RingHom.comp.{u2, max u2 u3, u1} k (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (Semiring.toNonAssocSemiring.{u2} k _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) g (AddMonoidAlgebra.singleZeroRingHom.{u2, u3} k G _inst_1 _inst_2))) -> (Eq.{max (succ u3) (succ u1)} (MonoidHom.{u3, u1} (Multiplicative.{u3} G) R (Multiplicative.mulOneClass.{u3} G (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3)))) (MonoidHom.comp.{u3, max u2 u3, u1} (Multiplicative.{u3} G) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (Multiplicative.mulOneClass.{u3} G (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHomClass.toMonoidHom.{max u2 u3, u1, max (max u2 u3) u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MulZeroOneClass.toMulOneClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) f) (AddMonoidAlgebra.of.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2))) (MonoidHom.comp.{u3, max u2 u3, u1} (Multiplicative.{u3} G) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (Multiplicative.mulOneClass.{u3} G (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (MonoidHomClass.toMonoidHom.{max u2 u3, u1, max (max u2 u3) u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (MulZeroOneClass.toMulOneClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (NonAssocSemiring.toMulZeroOneClass.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_1) (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u1} R (NonAssocSemiring.toMulZeroOneClass.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3))) g) (AddMonoidAlgebra.of.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (AddMonoidAlgebra.{u2, u3} k G _inst_1) R (AddMonoidAlgebra.nonAssocSemiring.{u2, u3} k G _inst_1 (AddMonoid.toAddZeroClass.{u3} G _inst_2)) (Semiring.toNonAssocSemiring.{u1} R _inst_3)) f g)
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.ring_hom_ext' AddMonoidAlgebra.ringHom_ext'ₓ'. -/
 /-- If two ring homomorphisms from `add_monoid_algebra k G` are equal on all `single a 1`
 and `single 0 b`, then they are equal.
 
@@ -1600,6 +2190,12 @@ open Finsupp MulOpposite
 
 variable [Semiring k]
 
+/- warning: add_monoid_algebra.op_ring_equiv -> AddMonoidAlgebra.opRingEquiv is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddCommMonoid.{u2} G], RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.hasMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (MulOpposite.hasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Finsupp.add.{u2, u1} G k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1) (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (Finsupp.add.{u2, u1} G (MulOpposite.{u1} k) (MulOpposite.addZeroClass.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddCommMonoid.{u2} G], RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.op_ring_equiv AddMonoidAlgebra.opRingEquivₓ'. -/
 /-- The opposite of an `add_monoid_algebra R I` is ring equivalent to
 the `add_monoid_algebra Rᵐᵒᵖ I` over the opposite ring, taking elements to their opposite. -/
 @[simps (config := { simpRhs := true })]
@@ -1616,15 +2212,23 @@ protected noncomputable def opRingEquiv [AddCommMonoid G] :
       simp only [map_range_single, single_mul_single, ← op_mul, add_comm] }
 #align add_monoid_algebra.op_ring_equiv AddMonoidAlgebra.opRingEquiv
 
+/- warning: add_monoid_algebra.op_ring_equiv_single -> AddMonoidAlgebra.opRingEquiv_single is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddCommMonoid.{u2} G] (r : k) (x : G), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1)) (coeFn.{succ (max u2 u1), succ (max u2 u1)} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.hasMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (MulOpposite.hasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Finsupp.add.{u2, u1} G k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1) (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (Finsupp.add.{u2, u1} G (MulOpposite.{u1} k) (MulOpposite.addZeroClass.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) (fun (_x : RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.hasMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (MulOpposite.hasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Finsupp.add.{u2, u1} G k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1) (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (Finsupp.add.{u2, u1} G (MulOpposite.{u1} k) (MulOpposite.addZeroClass.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) => (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) -> (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1))) (RingEquiv.hasCoeToFun.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1)) (MulOpposite.hasMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (MulOpposite.hasAdd.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Finsupp.add.{u2, u1} G k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1))))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.semiring.{u1} k _inst_1) (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (Finsupp.add.{u2, u1} G (MulOpposite.{u1} k) (MulOpposite.addZeroClass.{u1} k (AddMonoid.toAddZeroClass.{u1} k (AddMonoidWithOne.toAddMonoid.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))))))) (AddMonoidAlgebra.opRingEquiv.{u1, u2} k G _inst_1 _inst_2) (MulOpposite.op.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_1)))) x r))) (Finsupp.single.{u2, u1} G (MulOpposite.{u1} k) (MulZeroClass.toHasZero.{u1} (MulOpposite.{u1} k) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} (MulOpposite.{u1} k) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MulOpposite.{u1} k) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} k) (MulOpposite.semiring.{u1} k _inst_1))))) x (MulOpposite.op.{u1} k r))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Semiring.{u1} k] [_inst_2 : AddCommMonoid.{u2} G] (r : k) (x : G), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) => AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.op.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x r))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (fun (_x : MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) => AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulEquivClass.toEquivLike.{max u2 u1, max u2 u1, max u2 u1} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (RingEquivClass.toMulEquivClass.{max u2 u1, max u2 u1, max u2 u1} (RingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (MulOpposite.instAddMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))))) (RingEquiv.instRingEquivClassRingEquiv.{max u2 u1, max u2 u1} (MulOpposite.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1)) (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (MulOpposite.instMulMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.hasMul.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))) (AddMonoidAlgebra.hasMul.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2)))) (MulOpposite.instAddMulOpposite.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} k G _inst_1 (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1)) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) (AddZeroClass.toAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G (AddCommMonoid.toAddMonoid.{u2} G _inst_2))))))))))) (AddMonoidAlgebra.opRingEquiv.{u1, u2} k G _inst_1 _inst_2) (MulOpposite.op.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_1) (AddMonoidAlgebra.single.{u1, u2} k G _inst_1 x r))) (AddMonoidAlgebra.single.{u1, u2} (MulOpposite.{u1} k) G (MulOpposite.instSemiringMulOpposite.{u1} k _inst_1) x (MulOpposite.op.{u1} k r))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.op_ring_equiv_single AddMonoidAlgebra.opRingEquiv_singleₓ'. -/
 @[simp]
 theorem opRingEquiv_single [AddCommMonoid G] (r : k) (x : G) :
     AddMonoidAlgebra.opRingEquiv (op (single x r)) = single x (op r) := by simp
 #align add_monoid_algebra.op_ring_equiv_single AddMonoidAlgebra.opRingEquiv_single
 
+#print AddMonoidAlgebra.opRingEquiv_symm_single /-
 @[simp]
 theorem opRingEquiv_symm_single [AddCommMonoid G] (r : kᵐᵒᵖ) (x : Gᵐᵒᵖ) :
     AddMonoidAlgebra.opRingEquiv.symm (single x r) = op (single x r.unop) := by simp
 #align add_monoid_algebra.op_ring_equiv_symm_single AddMonoidAlgebra.opRingEquiv_symm_single
+-/
 
 end Opposite
 
@@ -1645,6 +2249,7 @@ instance [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
       ext
       simp [single_zero_mul_apply, mul_single_zero_apply, Algebra.commutes] }
 
+#print AddMonoidAlgebra.singleZeroAlgHom /-
 /-- `finsupp.single 0` as a `alg_hom` -/
 @[simps]
 def singleZeroAlgHom [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
@@ -1655,7 +2260,14 @@ def singleZeroAlgHom [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
       simp
       rfl }
 #align add_monoid_algebra.single_zero_alg_hom AddMonoidAlgebra.singleZeroAlgHom
+-/
 
+/- warning: add_monoid_algebra.coe_algebra_map -> AddMonoidAlgebra.coe_algebraMap is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {R : Type.{u3}} [_inst_1 : CommSemiring.{u3} R] [_inst_2 : Semiring.{u1} k] [_inst_3 : Algebra.{u3, u1} R k _inst_1 _inst_2] [_inst_4 : AddMonoid.{u2} G], Eq.{max (succ u3) (succ u2) (succ u1)} ((fun (_x : RingHom.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) => R -> (AddMonoidAlgebra.{u1, u2} k G _inst_2)) (algebraMap.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u1, u2, u3} k G R _inst_1 _inst_2 _inst_3 _inst_4))) (coeFn.{max (succ u3) (succ (max u2 u1)), max (succ u3) (succ (max u2 u1))} (RingHom.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) (fun (_x : RingHom.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) => R -> (AddMonoidAlgebra.{u1, u2} k G _inst_2)) (RingHom.hasCoeToFun.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4))) (algebraMap.{u3, max u2 u1} R (AddMonoidAlgebra.{u1, u2} k G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u1, u2, u3} k G R _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u3, succ u1, max (succ u2) (succ u1)} R k (AddMonoidAlgebra.{u1, u2} k G _inst_2) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2)))) (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_4)))))) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} R k (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} k _inst_2)) (fun (_x : RingHom.{u3, u1} R k (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} k _inst_2)) => R -> k) (RingHom.hasCoeToFun.{u3, u1} R k (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} k _inst_2)) (algebraMap.{u3, u1} R k _inst_1 _inst_2 _inst_3)))
+but is expected to have type
+  forall {k : Type.{u2}} {G : Type.{u3}} {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Semiring.{u2} k] [_inst_3 : Algebra.{u1, u2} R k _inst_1 _inst_2] [_inst_4 : AddMonoid.{u3} G], Eq.{max (max (succ u2) (succ u3)) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => AddMonoidAlgebra.{u2, u3} k G _inst_2) a) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), succ u1, max (succ u2) (succ u3)} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => AddMonoidAlgebra.{u2, u3} k G _inst_2) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, u1, max u2 u3} (RingHom.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4))) R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u1, max u2 u3} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4)))))) (algebraMap.{u1, max u3 u2} R (AddMonoidAlgebra.{u2, u3} k G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u2, u3} k G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u2, u3, u1} k G R _inst_1 _inst_2 _inst_3 _inst_4))) (Function.comp.{succ u1, succ u2, max (succ u3) (succ u2)} R k (AddMonoidAlgebra.{u2, u3} k G _inst_2) (AddMonoidAlgebra.single.{u2, u3} k G _inst_2 (OfNat.ofNat.{u3} G 0 (Zero.toOfNat0.{u3} G (AddMonoid.toZero.{u3} G _inst_4)))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => k) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} k (Semiring.toNonAssocSemiring.{u2} k _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2)) R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R k (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} k _inst_2))))) (algebraMap.{u1, u2} R k _inst_1 _inst_2 _inst_3)))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.coe_algebra_map AddMonoidAlgebra.coe_algebraMapₓ'. -/
 @[simp]
 theorem coe_algebraMap [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
     (algebraMap R (AddMonoidAlgebra k G) : R → AddMonoidAlgebra k G) = single 0 ∘ algebraMap R k :=
@@ -1670,23 +2282,37 @@ variable {k G} [CommSemiring k] [AddMonoid G]
 
 variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [Algebra k B]
 
+/- warning: add_monoid_algebra.lift_nc_alg_hom -> AddMonoidAlgebra.liftNCAlgHom is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : Multiplicative.{u2} G), Commute.{u4} B (Distrib.toHasMul.{u4} B (NonUnitalNonAssocSemiring.toDistrib.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (fun (_x : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) => A -> B) ([anonymous].{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) f x) (coeFn.{max (succ u4) (succ u2), max (succ u2) (succ u4)} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (fun (_x : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) => (Multiplicative.{u2} G) -> B) (MonoidHom.hasCoeToFun.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (AddMonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {B : Type.{u4}} [_inst_5 : Semiring.{u4} B] [_inst_6 : Algebra.{u1, u4} k B _inst_1 _inst_5] (f : AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (g : MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))), (forall (x : A) (y : Multiplicative.{u2} G), Commute.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonUnitalNonAssocSemiring.toMul.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (Semiring.toNonAssocSemiring.{u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_5))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (SMulZeroClass.toSMul.{u1, u4} k B (AddMonoid.toZero.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribSMul.toSMulZeroClass.{u1, u4} k B (AddMonoid.toAddZeroClass.{u4} B (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))))) (DistribMulAction.toDistribSMul.{u1, u4} k B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AddCommMonoid.toAddMonoid.{u4} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u4, u1, u3, u4} (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) k A B (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (Module.toDistribMulAction.{u1, u4} k B (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u4} k B _inst_1 _inst_5 _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u4, max u3 u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 (AlgHom.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6) (AlgHom.algHomClass.{u1, u3, u4} k A B _inst_1 _inst_3 _inst_5 _inst_4 _inst_6))))) f x) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u2} G) => B) _x) (MulHomClass.toFunLike.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u4} B (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (MonoidHomClass.toMulHomClass.{max u2 u4, u2, u4} (MonoidHom.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))) (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (MonoidHom.monoidHomClass.{u2, u4} (Multiplicative.{u2} G) B (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u4} B (NonAssocSemiring.toMulZeroOneClass.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5)))))) g y)) -> (AlgHom.{u1, max u2 u3, u4} k (AddMonoidAlgebra.{u3, u2} A G _inst_3) B _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_3 _inst_2) _inst_5 (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_3 _inst_4 _inst_2) _inst_6)
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_nc_alg_hom AddMonoidAlgebra.liftNCAlgHomₓ'. -/
 /-- `lift_nc_ring_hom` as a `alg_hom`, for when `f` is an `alg_hom` -/
-def liftNcAlgHom (f : A →ₐ[k] B) (g : Multiplicative G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
+def liftNCAlgHom (f : A →ₐ[k] B) (g : Multiplicative G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
     AddMonoidAlgebra A G →ₐ[k] B :=
   {
-    liftNcRingHom (f : A →+* B) g
+    liftNCRingHom (f : A →+* B) g
       h_comm with
-    toFun := liftNcRingHom (f : A →+* B) g h_comm
+    toFun := liftNCRingHom (f : A →+* B) g h_comm
     commutes' := by simp [lift_nc_ring_hom] }
-#align add_monoid_algebra.lift_nc_alg_hom AddMonoidAlgebra.liftNcAlgHom
+#align add_monoid_algebra.lift_nc_alg_hom AddMonoidAlgebra.liftNCAlgHom
 
+#print AddMonoidAlgebra.algHom_ext /-
 /-- A `k`-algebra homomorphism from `monoid_algebra k G` is uniquely defined by its
 values on the functions `single a 1`. -/
 theorem algHom_ext ⦃φ₁ φ₂ : AddMonoidAlgebra k G →ₐ[k] A⦄
     (h : ∀ x, φ₁ (single x 1) = φ₂ (single x 1)) : φ₁ = φ₂ :=
   @MonoidAlgebra.algHom_ext k (Multiplicative G) _ _ _ _ _ _ _ h
 #align add_monoid_algebra.alg_hom_ext AddMonoidAlgebra.algHom_ext
+-/
 
+/- warning: add_monoid_algebra.alg_hom_ext' -> AddMonoidAlgebra.algHom_ext' is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {{φ₁ : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4}} {{φ₂ : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4}}, (Eq.{max (succ u3) (succ u2)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHom.comp.{u2, max u2 u1, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) ((fun (a : Sort.{max (succ (max u2 u1)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u2 u1))}) [self : HasLiftT.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} a b] => self.0) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (HasLiftT.mk.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (CoeTCₓ.coe.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHom.hasCoeT.{max u2 u1, u3, max (max u2 u1) u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u2 u1) u3, max u2 u1, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} A _inst_3) (AlgHomClass.toRingHomClass.{max (max u2 u1) u3, u1, max u2 u1, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.algHomClass.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4)))))) φ₁) (AddMonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MonoidHom.comp.{u2, max u2 u1, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) ((fun (a : Sort.{max (succ (max u2 u1)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u2 u1))}) [self : HasLiftT.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} a b] => self.0) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (HasLiftT.mk.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (CoeTCₓ.coe.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ (max u2 u1))} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHom.hasCoeT.{max u2 u1, u3, max (max u2 u1) u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u2 u1) u3, max u2 u1, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} A _inst_3) (AlgHomClass.toRingHomClass.{max (max u2 u1) u3, u1, max u2 u1, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.algHomClass.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4)))))) φ₂) (AddMonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) -> (Eq.{max (succ (max u2 u1)) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) φ₁ φ₂)
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] {{φ₁ : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4}} {{φ₂ : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4}}, (Eq.{max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHom.comp.{u2, max u1 u2, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHomClass.toMonoidHom.{max u1 u2, u3, max (max u1 u2) u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} A _inst_3) (AlgHomClass.toRingHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.algHomClass.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))) φ₁) (AddMonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MonoidHom.comp.{u2, max u1 u2, u3} (Multiplicative.{u2} G) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHomClass.toMonoidHom.{max u1 u2, u3, max (max u1 u2) u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MulZeroOneClass.toMulOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (RingHomClass.toMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (Semiring.toNonAssocSemiring.{u3} A _inst_3) (AlgHomClass.toRingHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.algHomClass.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))) φ₂) (AddMonoidAlgebra.of.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (AddMonoid.toAddZeroClass.{u2} G _inst_2)))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) φ₁ φ₂)
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.alg_hom_ext' AddMonoidAlgebra.algHom_ext'ₓ'. -/
 /-- See note [partially-applied ext lemmas]. -/
 @[ext]
 theorem algHom_ext' ⦃φ₁ φ₂ : AddMonoidAlgebra k G →ₐ[k] A⦄
@@ -1699,6 +2325,7 @@ theorem algHom_ext' ⦃φ₁ φ₂ : AddMonoidAlgebra k G →ₐ[k] A⦄
 
 variable (k G A)
 
+#print AddMonoidAlgebra.lift /-
 /-- Any monoid homomorphism `G →* A` can be lifted to an algebra homomorphism
 `monoid_algebra k G →ₐ[k] A`. -/
 def lift : (Multiplicative G →* A) ≃ (AddMonoidAlgebra k G →ₐ[k] A) :=
@@ -1708,47 +2335,67 @@ def lift : (Multiplicative G →* A) ≃ (AddMonoidAlgebra k G →ₐ[k] A) :=
     invFun := fun f => (f : AddMonoidAlgebra k G →* A).comp (of k G)
     toFun := fun F =>
       { @MonoidAlgebra.lift k (Multiplicative G) _ _ A _ _ F with
-        toFun := liftNcAlgHom (Algebra.ofId k A) F fun _ _ => Algebra.commutes _ _ } }
+        toFun := liftNCAlgHom (Algebra.ofId k A) F fun _ _ => Algebra.commutes _ _ } }
 #align add_monoid_algebra.lift AddMonoidAlgebra.lift
+-/
 
 variable {k G A}
 
+#print AddMonoidAlgebra.lift_apply' /-
 theorem lift_apply' (F : Multiplicative G →* A) (f : MonoidAlgebra k G) :
     lift k G A F f = f.Sum fun a b => algebraMap k A b * F (Multiplicative.ofAdd a) :=
   rfl
 #align add_monoid_algebra.lift_apply' AddMonoidAlgebra.lift_apply'
+-/
 
+#print AddMonoidAlgebra.lift_apply /-
 theorem lift_apply (F : Multiplicative G →* A) (f : MonoidAlgebra k G) :
     lift k G A F f = f.Sum fun a b => b • F (Multiplicative.ofAdd a) := by
   simp only [lift_apply', Algebra.smul_def]
 #align add_monoid_algebra.lift_apply AddMonoidAlgebra.lift_apply
+-/
 
+#print AddMonoidAlgebra.lift_def /-
 theorem lift_def (F : Multiplicative G →* A) :
-    ⇑(lift k G A F) = liftNc ((algebraMap k A : k →+* A) : k →+ A) F :=
+    ⇑(lift k G A F) = liftNC ((algebraMap k A : k →+* A) : k →+ A) F :=
   rfl
 #align add_monoid_algebra.lift_def AddMonoidAlgebra.lift_def
+-/
 
+/- warning: add_monoid_algebra.lift_symm_apply -> AddMonoidAlgebra.lift_symm_apply is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : Multiplicative.{u2} G), Eq.{succ u3} A (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (fun (_x : MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) => (Multiplicative.{u2} G) -> A) (MonoidHom.hasCoeToFun.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (coeFn.{max 1 (max (max (succ (max u2 u1)) (succ u3)) (succ u3) (succ u2)) (max (succ u3) (succ u2)) (succ (max u2 u1)) (succ u3), max (max (succ (max u2 u1)) (succ u3)) (succ u3) (succ u2)} (Equiv.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (fun (_x : Equiv.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) => (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) -> (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u2 u1)) (succ u3), max (succ u3) (succ u2)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u3) (succ u2), max (succ (max u2 u1)) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (coeFn.{max (succ (max u2 u1)) (succ u3), max (succ (max u2 u1)) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) -> A) ([anonymous].{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) F (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (fun (_x : Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) => (Multiplicative.{u2} G) -> G) (Equiv.hasCoeToFun.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) x) (OfNat.ofNat.{u1} k 1 (OfNat.mk.{u1} k 1 (One.one.{u1} k (AddMonoidWithOne.toOne.{u1} k (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} k (NonAssocSemiring.toAddCommMonoidWithOne.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddMonoid.{u2} G] {A : Type.{u3}} [_inst_3 : Semiring.{u3} A] [_inst_4 : Algebra.{u1, u3} k A _inst_1 _inst_3] (F : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (x : Multiplicative.{u2} G), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u2} G) => A) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Multiplicative.{u2} G) => A) _x) (MulHomClass.toFunLike.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (MulOneClass.toMul.{u2} (Multiplicative.{u2} G) (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2))) (MulOneClass.toMul.{u3} A (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (MonoidHomClass.toMulHomClass.{max u2 u3, u2, u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) F) (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (MonoidHom.monoidHomClass.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (fun (_x : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) => MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (Equiv.symm.{max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (MonoidHom.{u2, u3} (Multiplicative.{u2} G) A (Multiplicative.mulOneClass.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_2)) (MulZeroOneClass.toMulOneClass.{u3} A (NonAssocSemiring.toMulZeroOneClass.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.lift.{u1, u2, u3} k G _inst_1 _inst_2 A _inst_3 _inst_4)) F) x) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (fun (_x : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (SMulZeroClass.toSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toZero.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2)))))) (SMulZeroClass.toSMul.{u1, u3} k A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribSMul.toSMulZeroClass.{u1, u3} k A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))))) (DistribMulAction.toDistribSMul.{u1, u3} k A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)))) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u1 u2, u3} (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A (MonoidWithZero.toMonoid.{u1} k (Semiring.toMonoidWithZero.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3)) (Module.toDistribMulAction.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2)))) (Algebra.toModule.{u1, max u1 u2} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2))) (Module.toDistribMulAction.{u1, u3} k A (CommSemiring.toSemiring.{u1} k _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_3))) (Algebra.toModule.{u1, u3} k A _inst_1 _inst_3 _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, u3, max (max u1 u2) u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4 (AlgHom.{u1, max u2 u1, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4) (AlgHom.algHomClass.{u1, max u1 u2, u3} k (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) A _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) _inst_2) _inst_3 (AddMonoidAlgebra.algebra.{u1, u2, u1} k G k _inst_1 (CommSemiring.toSemiring.{u1} k _inst_1) (Algebra.id.{u1} k _inst_1) _inst_2) _inst_4))))) F (AddMonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (FunLike.coe.{succ u2, succ u2, succ u2} (Equiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.{u2} G) (fun (_x : Multiplicative.{u2} G) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Multiplicative.{u2} G) => G) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u2} (Multiplicative.{u2} G) G) (Multiplicative.toAdd.{u2} G) x) (OfNat.ofNat.{u1} k 1 (One.toOfNat1.{u1} k (Semiring.toOne.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.lift_symm_apply AddMonoidAlgebra.lift_symm_applyₓ'. -/
 @[simp]
 theorem lift_symm_apply (F : AddMonoidAlgebra k G →ₐ[k] A) (x : Multiplicative G) :
     (lift k G A).symm F x = F (single x.toAdd 1) :=
   rfl
 #align add_monoid_algebra.lift_symm_apply AddMonoidAlgebra.lift_symm_apply
 
+#print AddMonoidAlgebra.lift_of /-
 theorem lift_of (F : Multiplicative G →* A) (x : Multiplicative G) :
     lift k G A F (of k G x) = F x := by rw [of_apply, ← lift_symm_apply, Equiv.symm_apply_apply]
 #align add_monoid_algebra.lift_of AddMonoidAlgebra.lift_of
+-/
 
+#print AddMonoidAlgebra.lift_single /-
 @[simp]
 theorem lift_single (F : Multiplicative G →* A) (a b) :
     lift k G A F (single a b) = b • F (Multiplicative.ofAdd a) := by
   rw [lift_def, lift_nc_single, Algebra.smul_def, [anonymous]]
 #align add_monoid_algebra.lift_single AddMonoidAlgebra.lift_single
+-/
 
+#print AddMonoidAlgebra.lift_unique' /-
 theorem lift_unique' (F : AddMonoidAlgebra k G →ₐ[k] A) :
     F = lift k G A ((F : AddMonoidAlgebra k G →* A).comp (of k G)) :=
   ((lift k G A).apply_symm_apply F).symm
 #align add_monoid_algebra.lift_unique' AddMonoidAlgebra.lift_unique'
+-/
 
+#print AddMonoidAlgebra.lift_unique /-
 /-- Decomposition of a `k`-algebra homomorphism from `monoid_algebra k G` by
 its values on `F (single a 1)`. -/
 theorem lift_unique (F : AddMonoidAlgebra k G →ₐ[k] A) (f : MonoidAlgebra k G) :
@@ -1757,11 +2404,14 @@ theorem lift_unique (F : AddMonoidAlgebra k G →ₐ[k] A) (f : MonoidAlgebra k
     rw [lift_unique' F]
     simp [lift_apply]
 #align add_monoid_algebra.lift_unique AddMonoidAlgebra.lift_unique
+-/
 
+#print AddMonoidAlgebra.algHom_ext_iff /-
 theorem algHom_ext_iff {φ₁ φ₂ : AddMonoidAlgebra k G →ₐ[k] A} :
     (∀ x, φ₁ (Finsupp.single x 1) = φ₂ (Finsupp.single x 1)) ↔ φ₁ = φ₂ :=
   ⟨fun h => algHom_ext h, by rintro rfl _ <;> rfl⟩
 #align add_monoid_algebra.alg_hom_ext_iff AddMonoidAlgebra.algHom_ext_iff
+-/
 
 end lift
 
@@ -1773,6 +2423,12 @@ universe ui
 
 variable {ι : Type ui}
 
+/- warning: add_monoid_algebra.prod_single -> AddMonoidAlgebra.prod_single is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {ι : Type.{u3}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddCommMonoid.{u2} G] {s : Finset.{u3} ι} {a : ι -> G} {b : ι -> k}, Eq.{succ (max u2 u1)} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (Finset.prod.{max u2 u1, u3} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) ι (CommSemiring.toCommMonoid.{max u2 u1} (Finsupp.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)))))) (AddMonoidAlgebra.commSemiring.{u1, u2} k G _inst_1 _inst_2)) s (fun (i : ι) => Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (a i) (b i))) (Finsupp.single.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1))))) (Finset.sum.{u2, u3} G ι _inst_2 s (fun (i : ι) => a i)) (Finset.prod.{u1, u3} k ι (CommSemiring.toCommMonoid.{u1} k _inst_1) s (fun (i : ι) => b i)))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} {ι : Type.{u3}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : AddCommMonoid.{u2} G] {s : Finset.{u3} ι} {a : ι -> G} {b : ι -> k}, Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (Finset.prod.{max u2 u1, u3} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) ι (CommSemiring.toCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1)) (AddMonoidAlgebra.commSemiring.{u1, u2} k G _inst_1 _inst_2)) s (fun (i : ι) => AddMonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (a i) (b i))) (AddMonoidAlgebra.single.{u1, u2} k G (CommSemiring.toSemiring.{u1} k _inst_1) (Finset.sum.{u2, u3} G ι _inst_2 s (fun (i : ι) => a i)) (Finset.prod.{u1, u3} k ι (CommSemiring.toCommMonoid.{u1} k _inst_1) s (fun (i : ι) => b i)))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.prod_single AddMonoidAlgebra.prod_singleₓ'. -/
 theorem prod_single [CommSemiring k] [AddCommMonoid G] {s : Finset ι} {a : ι → G} {b : ι → k} :
     (∏ i in s, single (a i) (b i)) = single (∑ i in s, a i) (∏ i in s, b i) :=
   Finset.cons_induction_on s rfl fun a s has ih => by
@@ -1781,12 +2437,19 @@ theorem prod_single [CommSemiring k] [AddCommMonoid G] {s : Finset ι} {a : ι 
 
 end
 
+/- warning: add_monoid_algebra.map_domain_algebra_map -> AddMonoidAlgebra.mapDomain_algebraMap is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} {A : Type.{u3}} {H : Type.{u4}} {F : Type.{u5}} [_inst_1 : CommSemiring.{u1} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u1, u3} k A _inst_1 _inst_2] [_inst_4 : AddMonoid.{u2} G] [_inst_5 : AddMonoid.{u4} H] [_inst_6 : AddMonoidHomClass.{u5, u2, u4} F G H (AddMonoid.toAddZeroClass.{u2} G _inst_4) (AddMonoid.toAddZeroClass.{u4} H _inst_5)] (f : F) (r : k), Eq.{max (succ u4) (succ u3)} (Finsupp.{u4, u3} H A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))))))) (Finsupp.mapDomain.{u2, u4, u3} G H A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_2))) (coeFn.{succ u5, max (succ u2) (succ u4)} F (fun (_x : F) => G -> H) (FunLike.hasCoeToFun.{succ u5, succ u2, succ u4} F G (fun (_x : G) => H) (AddHomClass.toFunLike.{u5, u2, u4} F G H (AddZeroClass.toHasAdd.{u2} G (AddMonoid.toAddZeroClass.{u2} G _inst_4)) (AddZeroClass.toHasAdd.{u4} H (AddMonoid.toAddZeroClass.{u4} H _inst_5)) (AddMonoidHomClass.toAddHomClass.{u5, u2, u4} F G H (AddMonoid.toAddZeroClass.{u2} G _inst_4) (AddMonoid.toAddZeroClass.{u4} H _inst_5) _inst_6))) f) (coeFn.{max (succ u1) (succ (max u2 u3)), max (succ u1) (succ (max u2 u3))} (RingHom.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (fun (_x : RingHom.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) => k -> (AddMonoidAlgebra.{u3, u2} A G _inst_2)) (RingHom.hasCoeToFun.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4))) (algebraMap.{u1, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u3, u2, u1} A G k _inst_1 _inst_2 _inst_3 _inst_4)) r)) (coeFn.{max (succ u1) (succ (max u4 u3)), max (succ u1) (succ (max u4 u3))} (RingHom.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u4 u3} (AddMonoidAlgebra.{u3, u4} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5))) (fun (_x : RingHom.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u4 u3} (AddMonoidAlgebra.{u3, u4} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5))) => k -> (AddMonoidAlgebra.{u3, u4} A H _inst_2)) (RingHom.hasCoeToFun.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) (Semiring.toNonAssocSemiring.{u1} k (CommSemiring.toSemiring.{u1} k _inst_1)) (Semiring.toNonAssocSemiring.{max u4 u3} (AddMonoidAlgebra.{u3, u4} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5))) (algebraMap.{u1, max u4 u3} k (AddMonoidAlgebra.{u3, u4} A H _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u4} A H _inst_2 _inst_5) (AddMonoidAlgebra.algebra.{u3, u4, u1} A H k _inst_1 _inst_2 _inst_3 _inst_5)) r)
+but is expected to have type
+  forall {k : Type.{u4}} {G : Type.{u5}} {A : Type.{u3}} {H : Type.{u2}} {F : Type.{u1}} [_inst_1 : CommSemiring.{u4} k] [_inst_2 : Semiring.{u3} A] [_inst_3 : Algebra.{u4, u3} k A _inst_1 _inst_2] [_inst_4 : AddMonoid.{u5} G] [_inst_5 : AddMonoid.{u2} H] [_inst_6 : AddMonoidHomClass.{u1, u5, u2} F G H (AddMonoid.toAddZeroClass.{u5} G _inst_4) (AddMonoid.toAddZeroClass.{u2} H _inst_5)] (f : F) (r : k), Eq.{max (succ u3) (succ u2)} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.mapDomain.{u3, u5, u2} A G _inst_2 H (FunLike.coe.{succ u1, succ u5, succ u2} F G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : G) => H) _x) (AddHomClass.toFunLike.{u1, u5, u2} F G H (AddZeroClass.toAdd.{u5} G (AddMonoid.toAddZeroClass.{u5} G _inst_4)) (AddZeroClass.toAdd.{u2} H (AddMonoid.toAddZeroClass.{u2} H _inst_5)) (AddMonoidHomClass.toAddHomClass.{u1, u5, u2} F G H (AddMonoid.toAddZeroClass.{u5} G _inst_4) (AddMonoid.toAddZeroClass.{u2} H _inst_5) _inst_6)) f) (FunLike.coe.{max (max (succ u4) (succ u5)) (succ u3), succ u4, max (succ u5) (succ u3)} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => AddMonoidAlgebra.{u3, u5} A G _inst_2) _x) (MulHomClass.toFunLike.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u5) u3, u4, max u5 u3} (RingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4))) k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)) (RingHom.instRingHomClassRingHom.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u5 u3} (AddMonoidAlgebra.{u3, u5} A G _inst_2) (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4)))))) (algebraMap.{u4, max u5 u3} k (AddMonoidAlgebra.{u3, u5} A G _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u5} A G _inst_2 _inst_4) (AddMonoidAlgebra.algebra.{u3, u5, u4} A G k _inst_1 _inst_2 _inst_3 _inst_4)) r)) (FunLike.coe.{max (max (succ u4) (succ u3)) (succ u2), succ u4, max (succ u3) (succ u2)} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (fun (_x : k) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : k) => AddMonoidAlgebra.{u3, u2} A H _inst_2) _x) (MulHomClass.toFunLike.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonUnitalNonAssocSemiring.toMul.{u4} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} k (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u3 u2} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max (max u4 u3) u2, u4, max u3 u2} (RingHom.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5))) k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)) (RingHom.instRingHomClassRingHom.{u4, max u3 u2} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) (Semiring.toNonAssocSemiring.{u4} k (CommSemiring.toSemiring.{u4} k _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u3} (AddMonoidAlgebra.{u3, u2} A H _inst_2) (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5)))))) (algebraMap.{u4, max u2 u3} k (AddMonoidAlgebra.{u3, u2} A H _inst_2) _inst_1 (AddMonoidAlgebra.semiring.{u3, u2} A H _inst_2 _inst_5) (AddMonoidAlgebra.algebra.{u3, u2, u4} A H k _inst_1 _inst_2 _inst_3 _inst_5)) r)
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.map_domain_algebra_map AddMonoidAlgebra.mapDomain_algebraMapₓ'. -/
 theorem mapDomain_algebraMap {A H F : Type _} [CommSemiring k] [Semiring A] [Algebra k A]
     [AddMonoid G] [AddMonoid H] [AddMonoidHomClass F G H] (f : F) (r : k) :
     mapDomain f (algebraMap k (AddMonoidAlgebra A G) r) = algebraMap k (AddMonoidAlgebra A H) r :=
   by simp only [Function.comp_apply, map_domain_single, AddMonoidAlgebra.coe_algebraMap, map_zero]
 #align add_monoid_algebra.map_domain_algebra_map AddMonoidAlgebra.mapDomain_algebraMap
 
+#print AddMonoidAlgebra.mapDomainNonUnitalAlgHom /-
 /-- If `f : G → H` is a homomorphism between two additive magmas, then `finsupp.map_domain f` is a
 non-unital algebra homomorphism between their additive magma algebras. -/
 @[simps]
@@ -1800,7 +2463,9 @@ def mapDomainNonUnitalAlgHom (k A : Type _) [CommSemiring k] [Semiring A] [Algeb
     map_mul' := fun x y => mapDomain_mul f x y
     map_smul' := fun r x => mapDomain_smul r x }
 #align add_monoid_algebra.map_domain_non_unital_alg_hom AddMonoidAlgebra.mapDomainNonUnitalAlgHom
+-/
 
+#print AddMonoidAlgebra.mapDomainAlgHom /-
 /-- If `f : G → H` is an additive homomorphism between two additive monoids, then
 `finsupp.map_domain f` is an algebra homomorphism between their add monoid algebras. -/
 @[simps]
@@ -1809,11 +2474,13 @@ def mapDomainAlgHom (k A : Type _) [CommSemiring k] [Semiring A] [Algebra k A] [
     AddMonoidAlgebra A G →ₐ[k] AddMonoidAlgebra A H :=
   { mapDomainRingHom A f with commutes' := mapDomain_algebraMap f }
 #align add_monoid_algebra.map_domain_alg_hom AddMonoidAlgebra.mapDomainAlgHom
+-/
 
 end AddMonoidAlgebra
 
 variable [CommSemiring R] (k G)
 
+#print AddMonoidAlgebra.toMultiplicativeAlgEquiv /-
 /-- The algebra equivalence between `add_monoid_algebra` and `monoid_algebra` in terms of
 `multiplicative`. -/
 def AddMonoidAlgebra.toMultiplicativeAlgEquiv [Semiring k] [Algebra R k] [AddMonoid G] :
@@ -1821,11 +2488,14 @@ def AddMonoidAlgebra.toMultiplicativeAlgEquiv [Semiring k] [Algebra R k] [AddMon
   { AddMonoidAlgebra.toMultiplicative k G with
     commutes' := fun r => by simp [AddMonoidAlgebra.toMultiplicative] }
 #align add_monoid_algebra.to_multiplicative_alg_equiv AddMonoidAlgebra.toMultiplicativeAlgEquiv
+-/
 
+#print MonoidAlgebra.toAdditiveAlgEquiv /-
 /-- The algebra equivalence between `monoid_algebra` and `add_monoid_algebra` in terms of
 `additive`. -/
 def MonoidAlgebra.toAdditiveAlgEquiv [Semiring k] [Algebra R k] [Monoid G] :
     MonoidAlgebra k G ≃ₐ[R] AddMonoidAlgebra k (Additive G) :=
   { MonoidAlgebra.toAdditive k G with commutes' := fun r => by simp [MonoidAlgebra.toAdditive] }
 #align monoid_algebra.to_additive_alg_equiv MonoidAlgebra.toAdditiveAlgEquiv
+-/
 
Diff
@@ -76,7 +76,7 @@ def MonoidAlgebra : Type max u₁ u₂ :=
 #align monoid_algebra MonoidAlgebra
 
 instance : CoeFun (MonoidAlgebra k G) fun _ => G → k :=
-  Finsupp.hasCoeToFun
+  Finsupp.coeFun
 
 end
 
@@ -315,7 +315,7 @@ instance [Monoid R] [Monoid S] [Semiring k] [DistribMulAction R k] [DistribMulAc
 
 instance [Monoid R] [Monoid S] [Semiring k] [DistribMulAction R k] [DistribMulAction S k]
     [SMulCommClass R S k] : SMulCommClass R S (MonoidAlgebra k G) :=
-  Finsupp.sMulCommClass G k
+  Finsupp.smulCommClass G k
 
 instance [Monoid R] [Semiring k] [DistribMulAction R k] [DistribMulAction Rᵐᵒᵖ k]
     [IsCentralScalar R k] : IsCentralScalar R (MonoidAlgebra k G) :=
@@ -1024,7 +1024,7 @@ def AddMonoidAlgebra :=
 #align add_monoid_algebra AddMonoidAlgebra
 
 instance : CoeFun (AddMonoidAlgebra k G) fun _ => G → k :=
-  Finsupp.hasCoeToFun
+  Finsupp.coeFun
 
 end
 
@@ -1268,7 +1268,7 @@ instance [Monoid R] [Monoid S] [Semiring k] [DistribMulAction R k] [DistribMulAc
 
 instance [Monoid R] [Monoid S] [Semiring k] [DistribMulAction R k] [DistribMulAction S k]
     [SMulCommClass R S k] : SMulCommClass R S (AddMonoidAlgebra k G) :=
-  Finsupp.sMulCommClass G k
+  Finsupp.smulCommClass G k
 
 instance [Monoid R] [Semiring k] [DistribMulAction R k] [DistribMulAction Rᵐᵒᵖ k]
     [IsCentralScalar R k] : IsCentralScalar R (AddMonoidAlgebra k G) :=
Diff
@@ -354,11 +354,11 @@ theorem mul_apply_antidiagonal [Mul G] (f g : MonoidAlgebra k G) (x : G) (s : Fi
         _ = ∑ p in (f.support ×ˢ g.support).filterₓ fun p : G × G => p.1 * p.2 = x, f p.1 * g p.2 :=
           (Finset.sum_filter _ _).symm
         _ = ∑ p in s.filter fun p : G × G => p.1 ∈ f.support ∧ p.2 ∈ g.support, f p.1 * g p.2 :=
-          sum_congr
+          (sum_congr
             (by
               ext
               simp only [mem_filter, mem_product, hs, and_comm'])
-            fun _ _ => rfl
+            fun _ _ => rfl)
         _ = ∑ p in s, f p.1 * g p.2 :=
           sum_subset (filter_subset _ _) fun p hps hp =>
             by
@@ -463,7 +463,7 @@ theorem mul_single_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
       calc
         (f * single x r) z = Sum f fun a b => if a = y then b * r else 0 := by
           simp only [mul_apply, A, H]
-        _ = if y ∈ f.support then f y * r else 0 := f.support.sum_ite_eq' _ _
+        _ = if y ∈ f.support then f y * r else 0 := (f.support.sum_ite_eq' _ _)
         _ = f y * r := by split_ifs with h <;> simp at h <;> simp [h]
         
 #align monoid_algebra.mul_single_apply_aux MonoidAlgebra.mul_single_apply_aux
@@ -481,7 +481,7 @@ theorem single_mul_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
         (single x r * f) y = Sum f fun a b => ite (x * a = y) (r * b) 0 :=
           (mul_apply _ _ _).trans <| sum_single_index this
         _ = f.sum fun a b => ite (a = z) (r * b) 0 := by simp only [H]
-        _ = if z ∈ f.support then r * f z else 0 := f.support.sum_ite_eq' _ _
+        _ = if z ∈ f.support then r * f z else 0 := (f.support.sum_ite_eq' _ _)
         _ = _ := by split_ifs with h <;> simp at h <;> simp [h]
         
 #align monoid_algebra.single_mul_apply_aux MonoidAlgebra.single_mul_apply_aux

Changes in mathlib4

mathlib3
mathlib4
chore: remove one beta_reduce and a porting note (#12377)

There is one more beta_reduce in this file with a porting note, but removing that one still does not work.

Diff
@@ -1038,8 +1038,6 @@ def equivariantOfLinearOfComm : V →ₗ[MonoidAlgebra k G] W where
   toFun := f
   map_add' v v' := by simp
   map_smul' c v := by
-    -- Porting note(#12129): additional beta reduction needed
-    beta_reduce
     -- Porting note: Was `apply`.
     refine Finsupp.induction c ?_ ?_
     · simp
chore: Rename nat_cast/int_cast/rat_cast to natCast/intCast/ratCast (#11486)

Now that I am defining NNRat.cast, I want a definitive answer to this naming issue. Plenty of lemmas in mathlib already use natCast/intCast/ratCast over nat_cast/int_cast/rat_cast, and this matches with the general expectation that underscore-separated name parts correspond to a single declaration.

Diff
@@ -268,9 +268,9 @@ instance nonAssocSemiring : NonAssocSemiring (MonoidAlgebra k G) :=
         mul_one, sum_single] }
 #align monoid_algebra.non_assoc_semiring MonoidAlgebra.nonAssocSemiring
 
-theorem nat_cast_def (n : ℕ) : (n : MonoidAlgebra k G) = single (1 : G) (n : k) :=
+theorem natCast_def (n : ℕ) : (n : MonoidAlgebra k G) = single (1 : G) (n : k) :=
   rfl
-#align monoid_algebra.nat_cast_def MonoidAlgebra.nat_cast_def
+#align monoid_algebra.nat_cast_def MonoidAlgebra.natCast_def
 
 end MulOneClass
 
@@ -345,10 +345,10 @@ instance nonAssocRing [Ring k] [MulOneClass G] : NonAssocRing (MonoidAlgebra k G
     intCast_negSucc := fun n => by simp; rfl }
 #align monoid_algebra.non_assoc_ring MonoidAlgebra.nonAssocRing
 
-theorem int_cast_def [Ring k] [MulOneClass G] (z : ℤ) :
+theorem intCast_def [Ring k] [MulOneClass G] (z : ℤ) :
     (z : MonoidAlgebra k G) = single (1 : G) (z : k) :=
   rfl
-#align monoid_algebra.int_cast_def MonoidAlgebra.int_cast_def
+#align monoid_algebra.int_cast_def MonoidAlgebra.intCast_def
 
 instance ring [Ring k] [Monoid G] : Ring (MonoidAlgebra k G) :=
   { MonoidAlgebra.nonAssocRing, MonoidAlgebra.semiring with }
@@ -1410,9 +1410,9 @@ instance nonAssocSemiring : NonAssocSemiring k[G] :=
         mul_one, sum_single] }
 #align add_monoid_algebra.non_assoc_semiring AddMonoidAlgebra.nonAssocSemiring
 
-theorem nat_cast_def (n : ℕ) : (n : k[G]) = single (0 : G) (n : k) :=
+theorem natCast_def (n : ℕ) : (n : k[G]) = single (0 : G) (n : k) :=
   rfl
-#align add_monoid_algebra.nat_cast_def AddMonoidAlgebra.nat_cast_def
+#align add_monoid_algebra.nat_cast_def AddMonoidAlgebra.natCast_def
 
 end MulOneClass
 
@@ -1488,10 +1488,10 @@ instance nonAssocRing [Ring k] [AddZeroClass G] : NonAssocRing k[G] :=
     intCast_negSucc := fun n => by simp; rfl }
 #align add_monoid_algebra.non_assoc_ring AddMonoidAlgebra.nonAssocRing
 
-theorem int_cast_def [Ring k] [AddZeroClass G] (z : ℤ) :
+theorem intCast_def [Ring k] [AddZeroClass G] (z : ℤ) :
     (z : k[G]) = single (0 : G) (z : k) :=
   rfl
-#align add_monoid_algebra.int_cast_def AddMonoidAlgebra.int_cast_def
+#align add_monoid_algebra.int_cast_def AddMonoidAlgebra.intCast_def
 
 instance ring [Ring k] [AddMonoid G] : Ring k[G] :=
   { AddMonoidAlgebra.nonAssocRing, AddMonoidAlgebra.semiring with }
chore: classify porting notes about additional necessary beta reduction (#12130)

This subsumes some of the notes in #10752 and #10971. I'm on the fence as to whether replacing the dsimp only by beta_reduce is useful; this is easy to revert if needed.

Diff
@@ -699,8 +699,8 @@ def liftMagma [Module k A] [IsScalarTower k A A] [SMulCommClass k A A] :
     { liftAddHom fun x => (smulAddHom k A).flip (f x) with
       toFun := fun a => a.sum fun m t => t • f m
       map_smul' := fun t' a => by
-        -- Porting note: `dsimp` is required for beta reduction.
-        dsimp only []
+        -- Porting note(#12129): additional beta reduction needed
+        beta_reduce
         rw [Finsupp.smul_sum, sum_smul_index']
         · simp_rw [smul_assoc, MonoidHom.id_apply]
         · intro m
@@ -1038,8 +1038,8 @@ def equivariantOfLinearOfComm : V →ₗ[MonoidAlgebra k G] W where
   toFun := f
   map_add' v v' := by simp
   map_smul' c v := by
-    -- Porting note: `dsimp` is required for beta reduction.
-    dsimp only []
+    -- Porting note(#12129): additional beta reduction needed
+    beta_reduce
     -- Porting note: Was `apply`.
     refine Finsupp.induction c ?_ ?_
     · simp
@@ -1757,8 +1757,8 @@ protected def AddMonoidAlgebra.toMultiplicative [Semiring k] [Add G] :
       Multiplicative.ofAdd with
     toFun := equivMapDomain Multiplicative.ofAdd
     map_mul' := fun x y => by
-      -- Porting note: `dsimp` is required for beta reduction.
-      dsimp only []
+      -- Porting note: added `dsimp only`; `beta_reduce` alone is not sufficient
+      dsimp only
       repeat' rw [equivMapDomain_eq_mapDomain (M := k)]
       dsimp [Multiplicative.ofAdd]
       exact MonoidAlgebra.mapDomain_mul (α := Multiplicative G) (β := k)
@@ -1771,8 +1771,8 @@ protected def MonoidAlgebra.toAdditive [Semiring k] [Mul G] :
   { Finsupp.domCongr Additive.ofMul with
     toFun := equivMapDomain Additive.ofMul
     map_mul' := fun x y => by
-      -- Porting note: `dsimp` is required for beta reduction.
-      dsimp only []
+      -- Porting note: added `dsimp only`; `beta_reduce` alone is not sufficient
+      dsimp only
       repeat' rw [equivMapDomain_eq_mapDomain (M := k)]
       dsimp [Additive.ofMul]
       convert MonoidAlgebra.mapDomain_mul (β := k) (MulHom.id G) x y }
chore: superfluous parentheses part 2 (#12131)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -557,7 +557,7 @@ theorem mul_single_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
       calc
         (HMul.hMul (β := MonoidAlgebra k G) f (single x r)) z =
             sum f fun a b => if a = y then b * r else 0 := by simp only [mul_apply, A, H]
-        _ = if y ∈ f.support then f y * r else 0 := (f.support.sum_ite_eq' _ _)
+        _ = if y ∈ f.support then f y * r else 0 := f.support.sum_ite_eq' _ _
         _ = f y * r := by split_ifs with h <;> simp at h <;> simp [h]
 #align monoid_algebra.mul_single_apply_aux MonoidAlgebra.mul_single_apply_aux
 
@@ -588,7 +588,7 @@ theorem single_mul_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
             sum f fun a b => ite (x * a = y) (r * b) 0 :=
           (mul_apply _ _ _).trans <| sum_single_index this
         _ = f.sum fun a b => ite (a = z) (r * b) 0 := by simp only [H]
-        _ = if z ∈ f.support then r * f z else 0 := (f.support.sum_ite_eq' _ _)
+        _ = if z ∈ f.support then r * f z else 0 := f.support.sum_ite_eq' _ _
         _ = _ := by split_ifs with h <;> simp at h <;> simp [h]
 #align monoid_algebra.single_mul_apply_aux MonoidAlgebra.single_mul_apply_aux
 
feat: MulActionHom in the semilinear style (#6057)

Generalize MulActionHom so that it allows two different monoids acting, related by a morphism. This is inspired by the treatment of (semi)linear maps in mathlib, and allows to refactor them.

Let M, N, X, Y be types, with SMul M X and SMul N Y, and let φ : M → N be a map.

  • MulActionHom φ X Y, the type of equivariant functions from X to Y, consists of functions f : X → Y such that f (m • x) = (φ m) • (f x) for all m : M and x : X.

Assume that we have Monoid M, Monoid N and that φ : M →* N. For A, B by types with AddMonoid A and AddMonoid B, endowed with DistribMulAction M A and DistribMulAction M B:

  • DistribMulActionHom φ A B is the type of equivariant additive monoid homomorphisms from A to B.

Similarly, when R and S are types with Semiring R, Semiring S, MulSemiringAction M R and MulSemiringAction N S

  • SMulSemiringHom φ R S is the type of equivariant ring homomorphisms from R to S.

The above types have corresponding classes:

  • MulActionHomClass F φ X Y states that F is a type of bundled X → Y homs which are φ-equivariant
  • DistribMulActionHomClass F φ A B states that F is a type of bundled A → B homs preserving the additive monoid structure and φ-equivariant
  • SMulSemiringHomClass F φ R S states that F is a type of bundled R → S homs preserving the ring structure and φ-equivariant

Notation

We introduce the following notation to code equivariant maps (the subscript index is for equivariant) :

  • X →ₑ[φ] Y is MulActionHom φ X Y.
  • A →ₑ+[φ] B is DistribMulActionHom φ A B.
  • R →ₑ+*[φ] S is MulSemiringActionHom φ R S.

When M = N and φ = MonoidHom.id M, we provide the backward compatible notation :

  • X →[M] Y is MulActionHom ([@id](https://github.com/id) M) X Y
  • A →+[M] B is DistribMulActionHom (MonoidHom.id M) A B
  • R →+*[M] S is MulSemiringActionHom (MonoidHom.id M) R S

This more general definition is propagated all over mathlib, in particular to LinearMap.

The treatment of composition of equivariant maps is inspired by that of semilinear maps. We provide classes CompTriple and MonoidHom.CompTriple of “composable triples`, and various instances for them.

Diff
@@ -7,6 +7,7 @@ import Mathlib.Algebra.Algebra.Equiv
 import Mathlib.Algebra.Algebra.NonUnitalHom
 import Mathlib.Algebra.BigOperators.Finsupp
 import Mathlib.Algebra.Module.BigOperators
+import Mathlib.Data.Finsupp.Basic
 import Mathlib.LinearAlgebra.Finsupp
 
 #align_import algebra.monoid_algebra.basic from "leanprover-community/mathlib"@"949dc57e616a621462062668c9f39e4e17b64b69"
@@ -701,7 +702,7 @@ def liftMagma [Module k A] [IsScalarTower k A A] [SMulCommClass k A A] :
         -- Porting note: `dsimp` is required for beta reduction.
         dsimp only []
         rw [Finsupp.smul_sum, sum_smul_index']
-        · simp_rw [smul_assoc]
+        · simp_rw [smul_assoc, MonoidHom.id_apply]
         · intro m
           exact zero_smul k (f m)
       map_mul' := fun a₁ a₂ => by
change the order of operation in zsmulRec and nsmulRec (#11451)

We change the following field in the definition of an additive commutative monoid:

 nsmul_succ : ∀ (n : ℕ) (x : G),
-  AddMonoid.nsmul (n + 1) x = x + AddMonoid.nsmul n x
+  AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x

where the latter is more natural

We adjust the definitions of ^ in monoids, groups, etc. Originally there was a warning comment about why this natural order was preferred

use x * npowRec n x and not npowRec n x * x in the definition to make sure that definitional unfolding of npowRec is blocked, to avoid deep recursion issues.

but it seems to no longer apply.

Remarks on the PR :

  • pow_succ and pow_succ' have switched their meanings.
  • Most of the time, the proofs were adjusted by priming/unpriming one lemma, or exchanging left and right; a few proofs were more complicated to adjust.
  • In particular, [Mathlib/NumberTheory/RamificationInertia.lean] used Ideal.IsPrime.mul_mem_pow which is defined in [Mathlib/RingTheory/DedekindDomain/Ideal.lean]. Changing the order of operation forced me to add the symmetric lemma Ideal.IsPrime.mem_pow_mul.
  • the docstring for Cauchy condensation test in [Mathlib/Analysis/PSeries.lean] was mathematically incorrect, I added the mention that the function is antitone.
Diff
@@ -1335,8 +1335,6 @@ instance nonUnitalNonAssocSemiring : NonUnitalNonAssocSemiring k[G] :=
     nsmul_succ := by
       intros
       refine Finsupp.ext fun _ => ?_
-      -- Porting note: The definition of `nsmul_succ` is different, so next line is required.
-      simp only [fun n => Nat.add_comm n 1]
       simp [-nsmul_eq_mul, add_smul] }
 #align add_monoid_algebra.non_unital_non_assoc_semiring AddMonoidAlgebra.nonUnitalNonAssocSemiring
 
@@ -1580,7 +1578,7 @@ theorem single_pow [AddMonoid G] {a : G} {b : k} : ∀ n : ℕ, single a b ^ n =
     simp only [pow_zero, zero_nsmul]
     rfl
   | n + 1 => by
-    rw [pow_succ, pow_succ, single_pow n, single_mul_single, add_comm, add_nsmul, one_nsmul]
+    rw [pow_succ, pow_succ, single_pow n, single_mul_single, add_nsmul, one_nsmul]
 #align add_monoid_algebra.single_pow AddMonoidAlgebra.single_pow
 
 /-- Like `Finsupp.mapDomain_zero`, but for the `1` we define in this file -/
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
  for filename in files:
    if filename.endswith('.lean'):
      file_path = os.path.join(dir_path, filename)

      # Open the file and read its contents
      with open(file_path, 'r') as file:
        content = file.read()

      # Use a regular expression to replace sequences of "variable" lines separated by empty lines
      # with sequences without empty lines
      modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -856,7 +856,6 @@ end Algebra
 section lift
 
 variable [CommSemiring k] [Monoid G] [Monoid H]
-
 variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type*} [Semiring B] [Algebra k B]
 
 /-- `liftNCRingHom` as an `AlgHom`, for when `f` is an `AlgHom` -/
@@ -1027,7 +1026,6 @@ theorem GroupSMul.linearMap_apply [Monoid G] [CommSemiring k] (V : Type u₃) [A
 section
 
 variable {k}
-
 variable [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]
@@ -1166,9 +1164,7 @@ end Opposite
 section Submodule
 
 variable [CommSemiring k] [Monoid G]
-
 variable {V : Type*} [AddCommMonoid V]
-
 variable [Module k V] [Module (MonoidAlgebra k G) V] [IsScalarTower k (MonoidAlgebra k G) V]
 
 /-- A submodule over `k` which is stable under scalar multiplication by elements of `G` is a
@@ -1969,7 +1965,6 @@ end Algebra
 section lift
 
 variable [CommSemiring k] [AddMonoid G]
-
 variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type*} [Semiring B] [Algebra k B]
 
 /-- `liftNCRingHom` as an `AlgHom`, for when `f` is an `AlgHom` -/
@@ -2110,7 +2105,6 @@ def mapDomainAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebra k A] [A
 #align add_monoid_algebra.map_domain_alg_hom_apply AddMonoidAlgebra.mapDomainAlgHom_apply
 
 variable (k A)
-
 variable [CommSemiring k] [AddMonoid G] [AddMonoid H] [Semiring A] [Algebra k A]
 
 
chore(Data/Finsupp/Defs): rename instances (#10976)

This adds the inst prefix that is expected in Lean 4.

Performed using the F2 shortcut (renaming foo to Finsupp.instFoo, then deleting the redundant Finsupp)

All the changes to downstream files are fallout, no names have been changed there.

Diff
@@ -92,7 +92,7 @@ instance MonoidAlgebra.instIsCancelAdd [IsCancelAdd k] : IsCancelAdd (MonoidAlge
   inferInstanceAs (IsCancelAdd (G →₀ k))
 
 instance MonoidAlgebra.coeFun : CoeFun (MonoidAlgebra k G) fun _ => G → k :=
-  Finsupp.coeFun
+  Finsupp.instCoeFun
 #align monoid_algebra.has_coe_to_fun MonoidAlgebra.coeFun
 
 end
@@ -174,7 +174,7 @@ theorem mul_def {f g : MonoidAlgebra k G} :
 #align monoid_algebra.mul_def MonoidAlgebra.mul_def
 
 instance nonUnitalNonAssocSemiring : NonUnitalNonAssocSemiring (MonoidAlgebra k G) :=
-  { Finsupp.addCommMonoid with
+  { Finsupp.instAddCommMonoid with
     -- Porting note: `refine` & `exact` are required because `simp` behaves differently.
     left_distrib := fun f g h => by
       haveI := Classical.decEq G
@@ -307,7 +307,7 @@ instance nonUnitalCommSemiring [CommSemiring k] [CommSemigroup G] :
 #align monoid_algebra.non_unital_comm_semiring MonoidAlgebra.nonUnitalCommSemiring
 
 instance nontrivial [Semiring k] [Nontrivial k] [Nonempty G] : Nontrivial (MonoidAlgebra k G) :=
-  Finsupp.nontrivial
+  Finsupp.instNontrivial
 #align monoid_algebra.nontrivial MonoidAlgebra.nontrivial
 
 /-! #### Derived instances -/
@@ -324,7 +324,7 @@ instance unique [Semiring k] [Subsingleton k] : Unique (MonoidAlgebra k G) :=
 #align monoid_algebra.unique MonoidAlgebra.unique
 
 instance addCommGroup [Ring k] : AddCommGroup (MonoidAlgebra k G) :=
-  Finsupp.addCommGroup
+  Finsupp.instAddCommGroup
 #align monoid_algebra.add_comm_group MonoidAlgebra.addCommGroup
 
 instance nonUnitalNonAssocRing [Ring k] [Mul G] : NonUnitalNonAssocRing (MonoidAlgebra k G) :=
@@ -1223,7 +1223,7 @@ instance instIsCancelAdd [IsCancelAdd k] : IsCancelAdd (AddMonoidAlgebra k G) :=
   inferInstanceAs (IsCancelAdd (G →₀ k))
 
 instance coeFun : CoeFun k[G] fun _ => G → k :=
-  Finsupp.coeFun
+  Finsupp.instCoeFun
 #align add_monoid_algebra.has_coe_to_fun AddMonoidAlgebra.coeFun
 
 end AddMonoidAlgebra
@@ -1312,7 +1312,7 @@ theorem mul_def {f g : k[G]} :
 #align add_monoid_algebra.mul_def AddMonoidAlgebra.mul_def
 
 instance nonUnitalNonAssocSemiring : NonUnitalNonAssocSemiring k[G] :=
-  { Finsupp.addCommMonoid with
+  { Finsupp.instAddCommMonoid with
     -- Porting note: `refine` & `exact` are required because `simp` behaves differently.
     left_distrib := fun f g h => by
       haveI := Classical.decEq G
@@ -1456,7 +1456,7 @@ instance nonUnitalCommSemiring [CommSemiring k] [AddCommSemigroup G] :
 #align add_monoid_algebra.non_unital_comm_semiring AddMonoidAlgebra.nonUnitalCommSemiring
 
 instance nontrivial [Semiring k] [Nontrivial k] [Nonempty G] : Nontrivial k[G] :=
-  Finsupp.nontrivial
+  Finsupp.instNontrivial
 #align add_monoid_algebra.nontrivial AddMonoidAlgebra.nontrivial
 
 /-! #### Derived instances -/
@@ -1473,7 +1473,7 @@ instance unique [Semiring k] [Subsingleton k] : Unique k[G] :=
 #align add_monoid_algebra.unique AddMonoidAlgebra.unique
 
 instance addCommGroup [Ring k] : AddCommGroup k[G] :=
-  Finsupp.addCommGroup
+  Finsupp.instAddCommGroup
 #align add_monoid_algebra.add_comm_group AddMonoidAlgebra.addCommGroup
 
 instance nonUnitalNonAssocRing [Ring k] [Add G] : NonUnitalNonAssocRing k[G] :=
chore: classify was rw porting notes (#10692)

Classifies by adding issue number (#10691) to porting notes claiming was rw.

Diff
@@ -754,7 +754,7 @@ def singleOneRingHom [Semiring k] [MulOneClass G] : k →+* MonoidAlgebra k G :=
   { Finsupp.singleAddHom 1 with
     map_one' := rfl
     map_mul' := fun x y => by
-      -- Porting note: Was `rw`.
+      -- Porting note (#10691): Was `rw`.
       simp only [ZeroHom.toFun_eq_coe, AddMonoidHom.toZeroHom_coe, singleAddHom_apply,
         single_mul_single, mul_one] }
 #align monoid_algebra.single_one_ring_hom MonoidAlgebra.singleOneRingHom
@@ -1857,7 +1857,7 @@ section Algebra
 def singleZeroRingHom [Semiring k] [AddMonoid G] : k →+* k[G] :=
   { Finsupp.singleAddHom 0 with
     map_one' := rfl
-    -- Porting note: Was `rw`.
+    -- Porting note (#10691): Was `rw`.
     map_mul' := fun x y => by simp only [singleAddHom, single_mul_single, zero_add] }
 #align add_monoid_algebra.single_zero_ring_hom AddMonoidAlgebra.singleZeroRingHom
 #align add_monoid_algebra.single_zero_ring_hom_apply AddMonoidAlgebra.singleZeroRingHom_apply
chore: classify simp can do this porting notes (#10619)

Classify by adding issue number (#10618) to porting notes claiming anything semantically equivalent to simp can prove this or simp can simplify this.

Diff
@@ -1151,12 +1151,12 @@ protected noncomputable def opRingEquiv [Monoid G] :
 #align monoid_algebra.op_ring_equiv_apply MonoidAlgebra.opRingEquiv_apply
 #align monoid_algebra.op_ring_equiv_symm_apply MonoidAlgebra.opRingEquiv_symm_apply
 
--- @[simp] -- Porting note: simp can prove this
+-- @[simp] -- Porting note (#10618): simp can prove this
 theorem opRingEquiv_single [Monoid G] (r : k) (x : G) :
     MonoidAlgebra.opRingEquiv (op (single x r)) = single (op x) (op r) := by simp
 #align monoid_algebra.op_ring_equiv_single MonoidAlgebra.opRingEquiv_single
 
--- @[simp] -- Porting note: simp can prove this
+-- @[simp] -- Porting note (#10618): simp can prove this
 theorem opRingEquiv_symm_single [Monoid G] (r : kᵐᵒᵖ) (x : Gᵐᵒᵖ) :
     MonoidAlgebra.opRingEquiv.symm (single x r) = op (single x.unop r.unop) := by simp
 #align monoid_algebra.op_ring_equiv_symm_single MonoidAlgebra.opRingEquiv_symm_single
@@ -1916,12 +1916,12 @@ protected noncomputable def opRingEquiv [AddCommMonoid G] :
 #align add_monoid_algebra.op_ring_equiv_apply AddMonoidAlgebra.opRingEquiv_apply
 #align add_monoid_algebra.op_ring_equiv_symm_apply AddMonoidAlgebra.opRingEquiv_symm_apply
 
--- @[simp] -- Porting note: simp can prove this
+-- @[simp] -- Porting note (#10618): simp can prove this
 theorem opRingEquiv_single [AddCommMonoid G] (r : k) (x : G) :
     AddMonoidAlgebra.opRingEquiv (op (single x r)) = single x (op r) := by simp
 #align add_monoid_algebra.op_ring_equiv_single AddMonoidAlgebra.opRingEquiv_single
 
--- @[simp] -- Porting note: simp can prove this
+-- @[simp] -- Porting note (#10618): simp can prove this
 theorem opRingEquiv_symm_single [AddCommMonoid G] (r : kᵐᵒᵖ) (x : Gᵐᵒᵖ) :
     AddMonoidAlgebra.opRingEquiv.symm (single x r) = op (single x r.unop) := by simp
 #align add_monoid_algebra.op_ring_equiv_symm_single AddMonoidAlgebra.opRingEquiv_symm_single
chore: classify was simp porting notes (#10746)

Classifies by adding issue number (#10745) to porting notes claiming was simp.

Diff
@@ -519,7 +519,7 @@ def of [MulOneClass G] : G →* MonoidAlgebra k G :=
 end
 
 theorem smul_of [MulOneClass G] (g : G) (r : k) : r • of k G g = single g r := by
-  -- Porting note: Was `simp`.
+  -- porting note (#10745): was `simp`.
   rw [of_apply, smul_single', mul_one]
 #align monoid_algebra.smul_of MonoidAlgebra.smul_of
 
chore: remove stream-of-consciousness uses of have, replace and suffices (#10640)

No changes to tactic file, it's just boring fixes throughout the library.

This follows on from #6964.

Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -611,10 +611,9 @@ theorem single_mul_apply_of_not_exists_mul [Mul G] (r : k) {g g' : G} (x : Monoi
 
 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 φ := by
-  suffices :
-    (liftNC (↑f) g).comp (smulAddHom k (MonoidAlgebra k G) c) =
-      (AddMonoidHom.mulLeft (f c)).comp (liftNC (↑f) g)
-  exact DFunLike.congr_fun this φ
+  suffices (liftNC (↑f) g).comp (smulAddHom k (MonoidAlgebra k G) c) =
+      (AddMonoidHom.mulLeft (f c)).comp (liftNC (↑f) g) from
+    DFunLike.congr_fun this φ
   -- Porting note: `ext` couldn't a find appropriate theorem.
   refine addHom_ext' fun a => AddMonoidHom.ext fun b => ?_
   -- Porting note: `reducible` cannot be `local` so the proof gets more complex.
refactor(Data/FunLike): use unbundled inheritance from FunLike (#8386)

The FunLike hierarchy is very big and gets scanned through each time we need a coercion (via the CoeFun instance). It looks like unbundled inheritance suits Lean 4 better here. The only class that still extends FunLike is EquivLike, since that has a custom coe_injective' field that is easier to implement. All other classes should take FunLike or EquivLike as a parameter.

Zulip thread

Important changes

Previously, morphism classes would be Type-valued and extend FunLike:

/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
  extends FunLike F A B :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))

After this PR, they should be Prop-valued and take FunLike as a parameter:

/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
  [FunLike F A B] : Prop :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))

(Note that A B stay marked as outParam even though they are not purely required to be so due to the FunLike parameter already filling them in. This is required to see through type synonyms, which is important in the category theory library. Also, I think keeping them as outParam is slightly faster.)

Similarly, MyEquivClass should take EquivLike as a parameter.

As a result, every mention of [MyHomClass F A B] should become [FunLike F A B] [MyHomClass F A B].

Remaining issues

Slower (failing) search

While overall this gives some great speedups, there are some cases that are noticeably slower. In particular, a failing application of a lemma such as map_mul is more expensive. This is due to suboptimal processing of arguments. For example:

variable [FunLike F M N] [Mul M] [Mul N] (f : F) (x : M) (y : M)

theorem map_mul [MulHomClass F M N] : f (x * y) = f x * f y

example [AddHomClass F A B] : f (x * y) = f x * f y := map_mul f _ _

Before this PR, applying map_mul f gives the goals [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]. Since M and N are out_params, [MulHomClass F ?M ?N] is synthesized first, supplies values for ?M and ?N and then the Mul M and Mul N instances can be found.

After this PR, the goals become [FunLike F ?M ?N] [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]. Now [FunLike F ?M ?N] is synthesized first, supplies values for ?M and ?N and then the Mul M and Mul N instances can be found, before trying MulHomClass F M N which fails. Since the Mul hierarchy is very big, this can be slow to fail, especially when there is no such Mul instance.

A long-term but harder to achieve solution would be to specify the order in which instance goals get solved. For example, we'd like to change the arguments to map_mul to look like [FunLike F M N] [Mul M] [Mul N] [highPriority <| MulHomClass F M N] because MulHomClass fails or succeeds much faster than the others.

As a consequence, the simpNF linter is much slower since by design it tries and fails to apply many map_ lemmas. The same issue occurs a few times in existing calls to simp [map_mul], where map_mul is tried "too soon" and fails. Thanks to the speedup of leanprover/lean4#2478 the impact is very limited, only in files that already were close to the timeout.

simp not firing sometimes

This affects map_smulₛₗ and related definitions. For simp lemmas Lean apparently uses a slightly different mechanism to find instances, so that rw can find every argument to map_smulₛₗ successfully but simp can't: leanprover/lean4#3701.

Missing instances due to unification failing

Especially in the category theory library, we might sometimes have a type A which is also accessible as a synonym (Bundled A hA).1. Instance synthesis doesn't always work if we have f : A →* B but x * y : (Bundled A hA).1 or vice versa. This seems to be mostly fixed by keeping A B as outParams in MulHomClass F A B. (Presumably because Lean will do a definitional check A =?= (Bundled A hA).1 instead of using the syntax in the discrimination tree.)

Workaround for issues

The timeouts can be worked around for now by specifying which map_mul we mean, either as map_mul f for some explicit f, or as e.g. MonoidHomClass.map_mul.

map_smulₛₗ not firing as simp lemma can be worked around by going back to the pre-FunLike situation and making LinearMap.map_smulₛₗ a simp lemma instead of the generic map_smulₛₗ. Writing simp [map_smulₛₗ _] also works.

Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>

Diff
@@ -196,8 +196,9 @@ instance nonUnitalNonAssocSemiring : NonUnitalNonAssocSemiring (MonoidAlgebra k
 
 variable [Semiring R]
 
-theorem liftNC_mul {g_hom : Type*} [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)) :
+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 := by
   conv_rhs => rw [← sum_single a, ← sum_single b]
   -- Porting note: `(liftNC _ g).map_finsupp_sum` → `map_finsupp_sum`
@@ -242,7 +243,8 @@ theorem one_def : (1 : MonoidAlgebra k G) = single 1 1 :=
 #align monoid_algebra.one_def MonoidAlgebra.one_def
 
 @[simp]
-theorem liftNC_one {g_hom : Type*} [OneHomClass g_hom G R] (f : k →+* R) (g : g_hom) :
+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 := by simp [one_def]
 #align monoid_algebra.lift_nc_one MonoidAlgebra.liftNC_one
 
@@ -475,14 +477,14 @@ section
 /-- Like `Finsupp.mapDomain_zero`, but for the `1` we define in this file -/
 @[simp]
 theorem mapDomain_one {α : Type*} {β : Type*} {α₂ : Type*} [Semiring β] [One α] [One α₂]
-    {F : Type*} [OneHomClass F α α₂] (f : F) :
+    {F : Type*} [FunLike F α α₂] [OneHomClass F α α₂] (f : F) :
     (mapDomain f (1 : MonoidAlgebra β α) : MonoidAlgebra β α₂) = (1 : MonoidAlgebra β α₂) := by
   simp_rw [one_def, mapDomain_single, map_one]
 #align monoid_algebra.map_domain_one MonoidAlgebra.mapDomain_one
 
 /-- Like `Finsupp.mapDomain_add`, but for the convolutive multiplication we define in this file -/
 theorem mapDomain_mul {α : Type*} {β : Type*} {α₂ : Type*} [Semiring β] [Mul α] [Mul α₂]
-    {F : Type*} [MulHomClass F α α₂] (f : F) (x y : MonoidAlgebra β α) :
+    {F : Type*} [FunLike F α α₂] [MulHomClass F α α₂] (f : F) (x y : MonoidAlgebra β α) :
     mapDomain f (x * y) = mapDomain f x * mapDomain f y := by
   simp_rw [mul_def, mapDomain_sum, mapDomain_single, map_mul]
   rw [Finsupp.sum_mapDomain_index]
@@ -763,7 +765,7 @@ def singleOneRingHom [Semiring k] [MulOneClass G] : k →+* MonoidAlgebra k G :=
 `Finsupp.mapDomain f` is a ring homomorphism between their monoid algebras. -/
 @[simps]
 def mapDomainRingHom (k : Type*) {H F : Type*} [Semiring k] [Monoid G] [Monoid H]
-    [MonoidHomClass F G H] (f : F) : MonoidAlgebra k G →+* MonoidAlgebra k H :=
+    [FunLike F G H] [MonoidHomClass F G H] (f : F) : MonoidAlgebra k G →+* MonoidAlgebra k H :=
   { (Finsupp.mapDomain.addMonoidHom f : MonoidAlgebra k G →+ MonoidAlgebra k H) with
     map_one' := mapDomain_one f
     map_mul' := fun x y => mapDomain_mul f x y }
@@ -944,7 +946,7 @@ theorem lift_unique (F : MonoidAlgebra k G →ₐ[k] A) (f : MonoidAlgebra k G)
 `Finsupp.mapDomain f` is a non-unital algebra homomorphism between their magma algebras. -/
 @[simps apply]
 def mapDomainNonUnitalAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebra k A]
-    {G H F : Type*} [Mul G] [Mul H] [MulHomClass F G H] (f : F) :
+    {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 :=
   { (Finsupp.mapDomain.addMonoidHom f : MonoidAlgebra A G →+ MonoidAlgebra A H) with
     map_mul' := fun x y => mapDomain_mul f x y
@@ -953,7 +955,7 @@ def mapDomainNonUnitalAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebr
 #align monoid_algebra.map_domain_non_unital_alg_hom_apply MonoidAlgebra.mapDomainNonUnitalAlgHom_apply
 
 variable (A) in
-theorem mapDomain_algebraMap {F : Type*} [MonoidHomClass F G H] (f : F) (r : k) :
+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 := by
   simp only [coe_algebraMap, mapDomain_single, map_one, (· ∘ ·)]
 #align monoid_algebra.map_domain_algebra_map MonoidAlgebra.mapDomain_algebraMap
@@ -962,7 +964,8 @@ theorem mapDomain_algebraMap {F : Type*} [MonoidHomClass F G H] (f : F) (r : k)
 `Finsupp.mapDomain f` is an algebra homomorphism between their monoid algebras. -/
 @[simps!]
 def mapDomainAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebra k A] {H F : Type*}
-    [Monoid H] [MonoidHomClass F G H] (f : F) : MonoidAlgebra A G →ₐ[k] MonoidAlgebra A H :=
+    [Monoid H] [FunLike F G H] [MonoidHomClass F G H] (f : F) :
+    MonoidAlgebra A G →ₐ[k] MonoidAlgebra A H :=
   { mapDomainRingHom A f with commutes' := mapDomain_algebraMap A f }
 #align monoid_algebra.map_domain_alg_hom MonoidAlgebra.mapDomainAlgHom
 #align monoid_algebra.map_domain_alg_hom_apply MonoidAlgebra.mapDomainAlgHom_apply
@@ -1344,8 +1347,9 @@ instance nonUnitalNonAssocSemiring : NonUnitalNonAssocSemiring k[G] :=
 
 variable [Semiring R]
 
-theorem liftNC_mul {g_hom : Type*} [MulHomClass g_hom (Multiplicative G) R] (f : k →+* R)
-    (g : g_hom) (a b : k[G])
+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 :=
   (MonoidAlgebra.liftNC_mul f g _ _ @h_comm : _)
@@ -1368,8 +1372,9 @@ theorem one_def : (1 : k[G]) = single 0 1 :=
 #align add_monoid_algebra.one_def AddMonoidAlgebra.one_def
 
 @[simp]
-theorem liftNC_one {g_hom : Type*} [OneHomClass g_hom (Multiplicative G) R] (f : k →+* R)
-    (g : g_hom) : liftNC (f : k →+ R) g 1 = 1 :=
+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 :=
   (MonoidAlgebra.liftNC_one f g : _)
 #align add_monoid_algebra.lift_nc_one AddMonoidAlgebra.liftNC_one
 
@@ -1586,7 +1591,7 @@ theorem single_pow [AddMonoid G] {a : G} {b : k} : ∀ n : ℕ, single a b ^ n =
 /-- Like `Finsupp.mapDomain_zero`, but for the `1` we define in this file -/
 @[simp]
 theorem mapDomain_one {α : Type*} {β : Type*} {α₂ : Type*} [Semiring β] [Zero α] [Zero α₂]
-    {F : Type*} [ZeroHomClass F α α₂] (f : F) :
+    {F : Type*} [FunLike F α α₂] [ZeroHomClass F α α₂] (f : F) :
     (mapDomain f (1 : AddMonoidAlgebra β α) : AddMonoidAlgebra β α₂) =
       (1 : AddMonoidAlgebra β α₂) :=
   by simp_rw [one_def, mapDomain_single, map_zero]
@@ -1594,7 +1599,7 @@ theorem mapDomain_one {α : Type*} {β : Type*} {α₂ : Type*} [Semiring β] [Z
 
 /-- Like `Finsupp.mapDomain_add`, but for the convolutive multiplication we define in this file -/
 theorem mapDomain_mul {α : Type*} {β : Type*} {α₂ : Type*} [Semiring β] [Add α] [Add α₂]
-    {F : Type*} [AddHomClass F α α₂] (f : F) (x y : AddMonoidAlgebra β α) :
+    {F : Type*} [FunLike F α α₂] [AddHomClass F α α₂] (f : F) (x y : AddMonoidAlgebra β α) :
     mapDomain f (x * y) = mapDomain f x * mapDomain f y := by
   simp_rw [mul_def, mapDomain_sum, mapDomain_single, map_add]
   rw [Finsupp.sum_mapDomain_index]
@@ -1729,7 +1734,7 @@ theorem induction_on [AddMonoid G] {p : k[G] → Prop} (f : k[G])
 `Finsupp.mapDomain f` is a ring homomorphism between their add monoid algebras. -/
 @[simps]
 def mapDomainRingHom (k : Type*) [Semiring k] {H F : Type*} [AddMonoid G] [AddMonoid H]
-    [AddMonoidHomClass F G H] (f : F) : k[G] →+* k[H] :=
+    [FunLike F G H] [AddMonoidHomClass F G H] (f : F) : k[G] →+* k[H] :=
   { (Finsupp.mapDomain.addMonoidHom f : MonoidAlgebra k G →+ MonoidAlgebra k H) with
     map_one' := mapDomain_one f
     map_mul' := fun x y => mapDomain_mul f x y }
@@ -2077,7 +2082,8 @@ theorem prod_single [CommSemiring k] [AddCommMonoid G] {s : Finset ι} {a : ι 
 end
 
 theorem mapDomain_algebraMap (A : Type*) {H F : Type*} [CommSemiring k] [Semiring A] [Algebra k A]
-    [AddMonoid G] [AddMonoid H] [AddMonoidHomClass F G H] (f : F) (r : k) :
+    [AddMonoid G] [AddMonoid H] [FunLike F G H] [AddMonoidHomClass F G H]
+    (f : F) (r : k) :
     mapDomain f (algebraMap k A[G] r) = algebraMap k A[H] r :=
   by simp only [Function.comp_apply, mapDomain_single, AddMonoidAlgebra.coe_algebraMap, map_zero]
 #align add_monoid_algebra.map_domain_algebra_map AddMonoidAlgebra.mapDomain_algebraMap
@@ -2086,7 +2092,7 @@ theorem mapDomain_algebraMap (A : Type*) {H F : Type*} [CommSemiring k] [Semirin
 non-unital algebra homomorphism between their additive magma algebras. -/
 @[simps apply]
 def mapDomainNonUnitalAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebra k A]
-    {G H F : Type*} [Add G] [Add H] [AddHomClass F G H] (f : F) :
+    {G H F : Type*} [Add G] [Add H] [FunLike F G H] [AddHomClass F G H] (f : F) :
     A[G] →ₙₐ[k] A[H] :=
   { (Finsupp.mapDomain.addMonoidHom f : MonoidAlgebra A G →+ MonoidAlgebra A H) with
     map_mul' := fun x y => mapDomain_mul f x y
@@ -2098,7 +2104,7 @@ def mapDomainNonUnitalAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebr
 `Finsupp.mapDomain f` is an algebra homomorphism between their add monoid algebras. -/
 @[simps!]
 def mapDomainAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebra k A] [AddMonoid G]
-    {H F : Type*} [AddMonoid H] [AddMonoidHomClass F G H] (f : F) :
+    {H F : Type*} [AddMonoid H] [FunLike F G H] [AddMonoidHomClass F G H] (f : F) :
     A[G] →ₐ[k] A[H] :=
   { mapDomainRingHom A f with commutes' := mapDomain_algebraMap A f }
 #align add_monoid_algebra.map_domain_alg_hom AddMonoidAlgebra.mapDomainAlgHom
chore(*): rename FunLike to DFunLike (#9785)

This prepares for the introduction of a non-dependent synonym of FunLike, which helps a lot with keeping #8386 readable.

This is entirely search-and-replace in 680197f combined with manual fixes in 4145626, e900597 and b8428f8. The commands that generated this change:

sed -i 's/\bFunLike\b/DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoFunLike\b/toDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/import Mathlib.Data.DFunLike/import Mathlib.Data.FunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bHom_FunLike\b/Hom_DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean     
sed -i 's/\binstFunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bfunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoo many metavariables to apply `fun_like.has_coe_to_fun`/too many metavariables to apply `DFunLike.hasCoeToFun`/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean

Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>

Diff
@@ -459,7 +459,7 @@ theorem single_commute_single [Mul G] {a₁ a₂ : G} {b₁ b₂ : k}
 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 :=
   suffices AddMonoidHom.mulLeft (single a b) = AddMonoidHom.mulRight (single a b) from
-    FunLike.congr_fun this
+    DFunLike.congr_fun this
   addHom_ext' fun a' => AddMonoidHom.ext fun b' => single_commute_single (ha a') (hb b')
 
 @[simp]
@@ -612,7 +612,7 @@ theorem liftNC_smul [MulOneClass G] {R : Type*} [Semiring R] (f : k →+* R) (g
   suffices :
     (liftNC (↑f) g).comp (smulAddHom k (MonoidAlgebra k G) c) =
       (AddMonoidHom.mulLeft (f c)).comp (liftNC (↑f) g)
-  exact FunLike.congr_fun this φ
+  exact DFunLike.congr_fun this φ
   -- Porting note: `ext` couldn't a find appropriate theorem.
   refine addHom_ext' fun a => AddMonoidHom.ext fun b => ?_
   -- Porting note: `reducible` cannot be `local` so the proof gets more complex.
@@ -685,7 +685,7 @@ theorem nonUnitalAlgHom_ext [DistribMulAction k A] {φ₁ φ₂ : MonoidAlgebra
 @[ext high]
 theorem nonUnitalAlgHom_ext' [DistribMulAction k A] {φ₁ φ₂ : MonoidAlgebra k G →ₙₐ[k] A}
     (h : φ₁.toMulHom.comp (ofMagma k G) = φ₂.toMulHom.comp (ofMagma k G)) : φ₁ = φ₂ :=
-  nonUnitalAlgHom_ext k <| FunLike.congr_fun h
+  nonUnitalAlgHom_ext k <| DFunLike.congr_fun h
 #align monoid_algebra.non_unital_alg_hom_ext' MonoidAlgebra.nonUnitalAlgHom_ext'
 
 /-- The functor `G ↦ MonoidAlgebra k G`, from the category of magmas to the category of non-unital,
@@ -792,7 +792,7 @@ theorem ringHom_ext' {R} [Semiring k] [MulOneClass G] [Semiring R] {f g : Monoid
     (h_of :
       (f : MonoidAlgebra k G →* R).comp (of k G) = (g : MonoidAlgebra k G →* R).comp (of k G)) :
     f = g :=
-  ringHom_ext (RingHom.congr_fun h₁) (FunLike.congr_fun h_of)
+  ringHom_ext (RingHom.congr_fun h₁) (DFunLike.congr_fun h_of)
 #align monoid_algebra.ring_hom_ext' MonoidAlgebra.ringHom_ext'
 
 /-- The instance `Algebra k (MonoidAlgebra A G)` whenever we have `Algebra k A`.
@@ -879,7 +879,7 @@ 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)) :
     φ₁ = φ₂ :=
-  algHom_ext <| FunLike.congr_fun h
+  algHom_ext <| DFunLike.congr_fun h
 #align monoid_algebra.alg_hom_ext' MonoidAlgebra.algHom_ext'
 
 variable (k G A)
@@ -1875,7 +1875,7 @@ theorem ringHom_ext' {R} [Semiring k] [AddMonoid G] [Semiring R] {f g : k[G] →
     (h₁ : f.comp singleZeroRingHom = g.comp singleZeroRingHom)
     (h_of : (f : k[G] →* R).comp (of k G) = (g : k[G] →* R).comp (of k G)) :
     f = g :=
-  ringHom_ext (RingHom.congr_fun h₁) (FunLike.congr_fun h_of)
+  ringHom_ext (RingHom.congr_fun h₁) (DFunLike.congr_fun h_of)
 #align add_monoid_algebra.ring_hom_ext' AddMonoidAlgebra.ringHom_ext'
 
 section Opposite
@@ -1987,7 +1987,7 @@ theorem algHom_ext ⦃φ₁ φ₂ : k[G] →ₐ[k] A⦄
 theorem algHom_ext' ⦃φ₁ φ₂ : k[G] →ₐ[k] A⦄
     (h : (φ₁ : k[G] →* A).comp (of k G) = (φ₂ : k[G] →* A).comp (of k G)) :
     φ₁ = φ₂ :=
-  algHom_ext <| FunLike.congr_fun h
+  algHom_ext <| DFunLike.congr_fun h
 #align add_monoid_algebra.alg_hom_ext' AddMonoidAlgebra.algHom_ext'
 
 variable (k G A)
chore(*): drop $/<| before fun (#9361)

Subset of #9319

Diff
@@ -979,7 +979,7 @@ def domCongr (e : G ≃* H) : MonoidAlgebra A G ≃ₐ[k] MonoidAlgebra A H :=
         congr_arg₂ _ (equivMapDomain_eq_mapDomain _ _).symm (equivMapDomain_eq_mapDomain _ _).symm)
 
 theorem domCongr_toAlgHom (e : G ≃* H) : (domCongr k A e).toAlgHom = mapDomainAlgHom k A e :=
-  AlgHom.ext <| fun _ => equivMapDomain_eq_mapDomain _ _
+  AlgHom.ext fun _ => equivMapDomain_eq_mapDomain _ _
 
 @[simp] theorem domCongr_apply (e : G ≃* H) (f : MonoidAlgebra A G) (h : H) :
     domCongr k A e f h = f (e.symm h) :=
@@ -2119,7 +2119,7 @@ def domCongr (e : G ≃+ H) : A[G] ≃ₐ[k] A[H] :=
         congr_arg₂ _ (equivMapDomain_eq_mapDomain _ _).symm (equivMapDomain_eq_mapDomain _ _).symm)
 
 theorem domCongr_toAlgHom (e : G ≃+ H) : (domCongr k A e).toAlgHom = mapDomainAlgHom k A e :=
-  AlgHom.ext <| fun _ => equivMapDomain_eq_mapDomain _ _
+  AlgHom.ext fun _ => equivMapDomain_eq_mapDomain _ _
 
 @[simp] theorem domCongr_apply (e : G ≃+ H) (f : MonoidAlgebra A G) (h : H) :
     domCongr k A e f h = f (e.symm h) :=
feat(Algebra/MonoidAlgebra): when single and of commute (#8975)

Also removes an autoImplicit that tripped me up when working on this file.

Diff
@@ -50,8 +50,6 @@ Similarly, I attempted to just define
 `Multiplicative G = G` leaks through everywhere, and seems impossible to use.
 -/
 
-set_option autoImplicit true
-
 
 noncomputable section
 
@@ -118,7 +116,8 @@ theorem single_add (a : G) (b₁ b₂ : k) : single a (b₁ + b₂) = single a b
   Finsupp.single_add a b₁ b₂
 
 @[simp]
-theorem sum_single_index [AddCommMonoid N] {a : G} {b : k} {h : G → k → N} (h_zero : h a 0 = 0) :
+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 := Finsupp.sum_single_index h_zero
 
 @[simp]
@@ -452,6 +451,17 @@ theorem single_mul_single [Mul G] {a₁ a₂ : G} {b₁ b₂ : k} :
     (sum_single_index (by rw [mul_zero, single_zero]))
 #align monoid_algebra.single_mul_single MonoidAlgebra.single_mul_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₂) :=
+  single_mul_single.trans <| congr_arg₂ single ha hb |>.trans single_mul_single.symm
+
+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 :=
+  suffices AddMonoidHom.mulLeft (single a b) = AddMonoidHom.mulRight (single a b) from
+    FunLike.congr_fun this
+  addHom_ext' fun a' => AddMonoidHom.ext fun b' => single_commute_single (ha a') (hb b')
+
 @[simp]
 theorem single_pow [Monoid G] {a : G} {b : k} : ∀ n : ℕ, single a b ^ n = single (a ^ n) (b ^ n)
   | 0 => by
@@ -516,6 +526,10 @@ theorem of_injective [MulOneClass G] [Nontrivial k] :
   simpa using (single_eq_single_iff _ _ _ _).mp h
 #align monoid_algebra.of_injective MonoidAlgebra.of_injective
 
+theorem of_commute [MulOneClass G] {a : G} (h : ∀ a', Commute a a') (f : MonoidAlgebra k G) :
+    Commute (of k G a) f :=
+  single_commute h Commute.one_left f
+
 /-- `Finsupp.single` as a `MonoidHom` from the product type into the monoid algebra.
 
 Note the order of the elements of the product are reversed compared to the arguments of
@@ -729,10 +743,8 @@ section Algebra
 -- attribute [local reducible] MonoidAlgebra -- Porting note: `reducible` cannot be `local`.
 
 theorem single_one_comm [CommSemiring k] [MulOneClass G] (r : k) (f : MonoidAlgebra k G) :
-    single (1 : G) r * f = f * single (1 : G) r := by
-  -- Porting note: `ext` → `refine Finsupp.ext fun _ => ?_`
-  refine Finsupp.ext fun _ => ?_
-  rw [single_one_mul_apply, mul_single_one_apply, mul_comm]
+    single (1 : G) r * f = f * single (1 : G) r :=
+  single_commute Commute.one_left (Commute.all _) f
 #align monoid_algebra.single_one_comm MonoidAlgebra.single_one_comm
 
 /-- `Finsupp.single 1` as a `RingHom` -/
@@ -1235,7 +1247,8 @@ theorem single_add (a : G) (b₁ b₂ : k) : single a (b₁ + b₂) = single a b
   Finsupp.single_add a b₁ b₂
 
 @[simp]
-theorem sum_single_index [AddCommMonoid N] {a : G} {b : k} {h : G → k → N} (h_zero : h a 0 = 0) :
+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 := Finsupp.sum_single_index h_zero
 
 @[simp]
@@ -1554,6 +1567,11 @@ theorem single_mul_single [Add G] {a₁ a₂ : G} {b₁ b₂ : k} :
   @MonoidAlgebra.single_mul_single k (Multiplicative G) _ _ _ _ _ _
 #align add_monoid_algebra.single_mul_single AddMonoidAlgebra.single_mul_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₂) :=
+  @MonoidAlgebra.single_commute_single k (Multiplicative G) _ _ _ _ _ _ ha hb
+
 -- This should be a `@[simp]` lemma, but the simp_nf linter times out if we add this.
 -- Probably the correct fix is to make a `[Add]MonoidAlgebra.single` with the correct type,
 -- instead of relying on `Finsupp.single`.
@@ -1632,6 +1650,11 @@ theorem of_injective [Nontrivial k] [AddZeroClass G] : Function.Injective (of k
   MonoidAlgebra.of_injective
 #align add_monoid_algebra.of_injective AddMonoidAlgebra.of_injective
 
+theorem of'_commute [Semiring k] [AddZeroClass G] {a : G} (h : ∀ a', AddCommute a a')
+    (f : AddMonoidAlgebra k G) :
+    Commute (of' k G a) f :=
+  MonoidAlgebra.of_commute (G := Multiplicative G) h f
+
 /-- `Finsupp.single` as a `MonoidHom` from the product type into the additive monoid algebra.
 
 Note the order of the elements of the product are reversed compared to the arguments of
chore: Nsmul -> NSMul, Zpow -> ZPow, etc (#9067)

Normalising to naming convention rule number 6.

Diff
@@ -995,20 +995,20 @@ section
 variable (k)
 
 /-- When `V` is a `k[G]`-module, multiplication by a group element `g` is a `k`-linear map. -/
-def GroupSmul.linearMap [Monoid G] [CommSemiring k] (V : Type u₃) [AddCommMonoid V] [Module k V]
+def GroupSMul.linearMap [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 →ₗ[k] V
     where
   toFun v := single g (1 : k) • v
   map_add' x y := smul_add (single g (1 : k)) x y
   map_smul' _c _x := smul_algebra_smul_comm _ _ _
-#align monoid_algebra.group_smul.linear_map MonoidAlgebra.GroupSmul.linearMap
+#align monoid_algebra.group_smul.linear_map MonoidAlgebra.GroupSMul.linearMap
 
 @[simp]
-theorem GroupSmul.linearMap_apply [Monoid G] [CommSemiring k] (V : Type u₃) [AddCommMonoid V]
+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 :=
+    (v : V) : (GroupSMul.linearMap k V g) v = single g (1 : k) • v :=
   rfl
-#align monoid_algebra.group_smul.linear_map_apply MonoidAlgebra.GroupSmul.linearMap_apply
+#align monoid_algebra.group_smul.linear_map_apply MonoidAlgebra.GroupSMul.linearMap_apply
 
 section
 
@@ -1159,7 +1159,7 @@ variable [Module k V] [Module (MonoidAlgebra k G) V] [IsScalarTower k (MonoidAlg
 
 /-- A submodule over `k` which is stable under scalar multiplication by elements of `G` is a
 submodule over `MonoidAlgebra k G`  -/
-def submoduleOfSmulMem (W : Submodule k V) (h : ∀ (g : G) (v : V), v ∈ W → of k G g • v ∈ W) :
+def submoduleOfSMulMem (W : Submodule k V) (h : ∀ (g : G) (v : V), v ∈ W → of k G g • v ∈ W) :
     Submodule (MonoidAlgebra k G) V where
   carrier := W
   zero_mem' := W.zero_mem'
@@ -1169,7 +1169,7 @@ def submoduleOfSmulMem (W : Submodule k V) (h : ∀ (g : G) (v : V), v ∈ W →
     rw [← Finsupp.sum_single f, Finsupp.sum, Finset.sum_smul]
     simp_rw [← smul_of, smul_assoc]
     exact Submodule.sum_smul_mem W _ fun g _ => h g v hv
-#align monoid_algebra.submodule_of_smul_mem MonoidAlgebra.submoduleOfSmulMem
+#align monoid_algebra.submodule_of_smul_mem MonoidAlgebra.submoduleOfSMulMem
 
 end Submodule
 
feat(MonoidAlgebra): add AddMonoidAlgebra.lift_of' (#8938)

Add AddMonoidAlgebra.lift_of'. simp can prove it but it's useful for rewriting right to left.

Other changes:

  • Move MonoidAlgebra.lift_of and prove it by simp to make it clear that simp can prove it.
  • Stop abusing Multiplicative G = G in the statement of AddMonoidAlgebra.of'_eq_of.
  • Reuse lemmas about MonoidAlgebra in some proofs about AddMonoidAlgebra.
Diff
@@ -906,15 +906,14 @@ theorem lift_symm_apply (F : MonoidAlgebra k G →ₐ[k] A) (x : G) :
   rfl
 #align monoid_algebra.lift_symm_apply MonoidAlgebra.lift_symm_apply
 
-theorem lift_of (F : G →* A) (x) : lift k G A F (of k G x) = F x := by
-  rw [of_apply, ← lift_symm_apply, Equiv.symm_apply_apply]
-#align monoid_algebra.lift_of MonoidAlgebra.lift_of
-
 @[simp]
 theorem lift_single (F : G →* A) (a b) : lift k G A F (single a b) = b • F a := by
   rw [lift_def, liftNC_single, Algebra.smul_def, AddMonoidHom.coe_coe]
 #align monoid_algebra.lift_single MonoidAlgebra.lift_single
 
+theorem lift_of (F : G →* A) (x) : lift k G A F (of k G x) = F x := by simp
+#align monoid_algebra.lift_of MonoidAlgebra.lift_of
+
 theorem lift_unique' (F : MonoidAlgebra k G →ₐ[k] A) :
     F = lift k G A ((F : MonoidAlgebra k G →* A).comp (of k G)) :=
   ((lift k G A).apply_symm_apply F).symm
@@ -1626,12 +1625,11 @@ theorem of'_apply (a : G) : of' k G a = single a 1 :=
   rfl
 #align add_monoid_algebra.of'_apply AddMonoidAlgebra.of'_apply
 
-theorem of'_eq_of [AddZeroClass G] (a : G) : of' k G a = of k G a :=
-  rfl
+theorem of'_eq_of [AddZeroClass G] (a : G) : of' k G a = of k G (.ofAdd a) := rfl
 #align add_monoid_algebra.of'_eq_of AddMonoidAlgebra.of'_eq_of
 
-theorem of_injective [Nontrivial k] [AddZeroClass G] : Function.Injective (of k G) := fun a b h =>
-  by simpa using (single_eq_single_iff _ _ _ _).mp h
+theorem of_injective [Nontrivial k] [AddZeroClass G] : Function.Injective (of k G) :=
+  MonoidAlgebra.of_injective
 #align add_monoid_algebra.of_injective AddMonoidAlgebra.of_injective
 
 /-- `Finsupp.single` as a `MonoidHom` from the product type into the additive monoid algebra.
@@ -2005,15 +2003,19 @@ theorem lift_symm_apply (F : k[G] →ₐ[k] A) (x : Multiplicative G) :
 #align add_monoid_algebra.lift_symm_apply AddMonoidAlgebra.lift_symm_apply
 
 theorem lift_of (F : Multiplicative G →* A) (x : Multiplicative G) :
-    lift k G A F (of k G x) = F x := by rw [of_apply, ← lift_symm_apply, Equiv.symm_apply_apply]
+    lift k G A F (of k G x) = F x := MonoidAlgebra.lift_of F x
 #align add_monoid_algebra.lift_of AddMonoidAlgebra.lift_of
 
 @[simp]
 theorem lift_single (F : Multiplicative G →* A) (a b) :
-    lift k G A F (single a b) = b • F (Multiplicative.ofAdd a) := by
-  rw [lift_def, liftNC_single, Algebra.smul_def, AddMonoidHom.coe_coe]
+    lift k G A F (single a b) = b • F (Multiplicative.ofAdd a) :=
+  MonoidAlgebra.lift_single F (.ofAdd a) b
 #align add_monoid_algebra.lift_single AddMonoidAlgebra.lift_single
 
+lemma lift_of' (F : Multiplicative G →* A) (x : G) :
+    lift k G A F (of' k G x) = F (Multiplicative.ofAdd x) :=
+  lift_of F x
+
 theorem lift_unique' (F : k[G] →ₐ[k] A) :
     F = lift k G A ((F : k[G] →* A).comp (of k G)) :=
   ((lift k G A).apply_symm_apply F).symm
refactor(Algebra/Hom): transpose Hom and file name (#8095)

I believe the file defining a type of morphisms belongs alongside the file defining the structure this morphism works on. So I would like to reorganize the files in the Mathlib.Algebra.Hom folder so that e.g. Mathlib.Algebra.Hom.Ring becomes Mathlib.Algebra.Ring.Hom and Mathlib.Algebra.Hom.NonUnitalAlg becomes Mathlib.Algebra.Algebra.NonUnitalHom.

While fixing the imports I went ahead and sorted them for good luck.

The full list of changes is: renamed: Mathlib/Algebra/Hom/NonUnitalAlg.lean -> Mathlib/Algebra/Algebra/NonUnitalHom.lean renamed: Mathlib/Algebra/Hom/Aut.lean -> Mathlib/Algebra/Group/Aut.lean renamed: Mathlib/Algebra/Hom/Commute.lean -> Mathlib/Algebra/Group/Commute/Hom.lean renamed: Mathlib/Algebra/Hom/Embedding.lean -> Mathlib/Algebra/Group/Embedding.lean renamed: Mathlib/Algebra/Hom/Equiv/Basic.lean -> Mathlib/Algebra/Group/Equiv/Basic.lean renamed: Mathlib/Algebra/Hom/Equiv/TypeTags.lean -> Mathlib/Algebra/Group/Equiv/TypeTags.lean renamed: Mathlib/Algebra/Hom/Equiv/Units/Basic.lean -> Mathlib/Algebra/Group/Units/Equiv.lean renamed: Mathlib/Algebra/Hom/Equiv/Units/GroupWithZero.lean -> Mathlib/Algebra/GroupWithZero/Units/Equiv.lean renamed: Mathlib/Algebra/Hom/Freiman.lean -> Mathlib/Algebra/Group/Freiman.lean renamed: Mathlib/Algebra/Hom/Group/Basic.lean -> Mathlib/Algebra/Group/Hom/Basic.lean renamed: Mathlib/Algebra/Hom/Group/Defs.lean -> Mathlib/Algebra/Group/Hom/Defs.lean renamed: Mathlib/Algebra/Hom/GroupAction.lean -> Mathlib/GroupTheory/GroupAction/Hom.lean renamed: Mathlib/Algebra/Hom/GroupInstances.lean -> Mathlib/Algebra/Group/Hom/Instances.lean renamed: Mathlib/Algebra/Hom/Iterate.lean -> Mathlib/Algebra/GroupPower/IterateHom.lean renamed: Mathlib/Algebra/Hom/Centroid.lean -> Mathlib/Algebra/Ring/CentroidHom.lean renamed: Mathlib/Algebra/Hom/Ring/Basic.lean -> Mathlib/Algebra/Ring/Hom/Basic.lean renamed: Mathlib/Algebra/Hom/Ring/Defs.lean -> Mathlib/Algebra/Ring/Hom/Defs.lean renamed: Mathlib/Algebra/Hom/Units.lean -> Mathlib/Algebra/Group/Units/Hom.lean

Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Reorganizing.20.60Mathlib.2EAlgebra.2EHom.60

Diff
@@ -4,8 +4,8 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Yury G. Kudryashov, Scott Morrison
 -/
 import Mathlib.Algebra.Algebra.Equiv
+import Mathlib.Algebra.Algebra.NonUnitalHom
 import Mathlib.Algebra.BigOperators.Finsupp
-import Mathlib.Algebra.Hom.NonUnitalAlg
 import Mathlib.Algebra.Module.BigOperators
 import Mathlib.LinearAlgebra.Finsupp
 
Revert "chore: revert #7703 (#7710)"

This reverts commit f3695eb2.

Diff
@@ -605,7 +605,8 @@ theorem liftNC_smul [MulOneClass G] {R : Type*} [Semiring R] (f : k →+* R) (g
   unfold MonoidAlgebra
   simp only [AddMonoidHom.coe_comp, Function.comp_apply, singleAddHom_apply, smulAddHom_apply,
     smul_single, smul_eq_mul, AddMonoidHom.coe_mulLeft]
-  rw [liftNC_single, liftNC_single, AddMonoidHom.coe_coe, map_mul, mul_assoc]
+  -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+  erw [liftNC_single, liftNC_single]; rw [AddMonoidHom.coe_coe, map_mul, mul_assoc]
 #align monoid_algebra.lift_nc_smul MonoidAlgebra.liftNC_smul
 
 end MiscTheorems
@@ -764,8 +765,9 @@ theorem ringHom_ext {R} [Semiring k] [MulOneClass G] [Semiring R] {f g : MonoidA
     f = g :=
   RingHom.coe_addMonoidHom_injective <|
     addHom_ext fun a b => by
-      rw [← single, ← one_mul a, ← mul_one b, ← single_mul_single, AddMonoidHom.coe_coe f,
-        AddMonoidHom.coe_coe g, f.map_mul, g.map_mul, h₁, h_of]
+      rw [← single, ← one_mul a, ← mul_one b, ← single_mul_single]
+      -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+      erw [AddMonoidHom.coe_coe f, AddMonoidHom.coe_coe g]; rw [f.map_mul, g.map_mul, h₁, h_of]
 #align monoid_algebra.ring_hom_ext MonoidAlgebra.ringHom_ext
 
 /-- If two ring homomorphisms from `MonoidAlgebra k G` are equal on all `single a 1`
@@ -1113,8 +1115,9 @@ protected noncomputable def opRingEquiv [Monoid G] :
   { opAddEquiv.symm.trans <|
       (Finsupp.mapRange.addEquiv (opAddEquiv : k ≃+ kᵐᵒᵖ)).trans <| Finsupp.domCongr opEquiv with
     map_mul' := by
-      rw [Equiv.toFun_as_coe, AddEquiv.toEquiv_eq_coe, AddEquiv.coe_toEquiv,
-        ← AddEquiv.coe_toAddMonoidHom]
+      -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+      rw [Equiv.toFun_as_coe, AddEquiv.toEquiv_eq_coe]; erw [AddEquiv.coe_toEquiv]
+      rw [← AddEquiv.coe_toAddMonoidHom]
       refine Iff.mpr (AddMonoidHom.map_mul_iff (R := (MonoidAlgebra k G)ᵐᵒᵖ)
         (S := MonoidAlgebra kᵐᵒᵖ Gᵐᵒᵖ) _) ?_
       -- Porting note: Was `ext`.
@@ -1124,9 +1127,12 @@ protected noncomputable def opRingEquiv [Monoid G] :
       simp only [AddMonoidHom.coe_comp, AddEquiv.coe_toAddMonoidHom, opAddEquiv_apply,
         Function.comp_apply, singleAddHom_apply, AddMonoidHom.compr₂_apply, AddMonoidHom.coe_mul,
         AddMonoidHom.coe_mulLeft, AddMonoidHom.compl₂_apply]
-      rw [AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply,
-        AddEquiv.trans_apply, AddEquiv.trans_apply,
-        MulOpposite.opAddEquiv_symm_apply, MulOpposite.unop_mul (α := MonoidAlgebra k G)]
+      -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+      erw [AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply,
+        AddEquiv.trans_apply, AddEquiv.trans_apply, MulOpposite.opAddEquiv_symm_apply]
+      rw [MulOpposite.unop_mul (α := MonoidAlgebra k G)]
+      -- This was not needed before leanprover/lean4#2644
+      erw [unop_op, unop_op, single_mul_single]
       simp }
 #align monoid_algebra.op_ring_equiv MonoidAlgebra.opRingEquiv
 #align monoid_algebra.op_ring_equiv_apply MonoidAlgebra.opRingEquiv_apply
@@ -1865,17 +1871,21 @@ protected noncomputable def opRingEquiv [AddCommMonoid G] :
   { MulOpposite.opAddEquiv.symm.trans
       (Finsupp.mapRange.addEquiv (MulOpposite.opAddEquiv : k ≃+ kᵐᵒᵖ)) with
     map_mul' := by
-      rw [Equiv.toFun_as_coe, AddEquiv.toEquiv_eq_coe, AddEquiv.coe_toEquiv,
-        ← AddEquiv.coe_toAddMonoidHom]
+      -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+      rw [Equiv.toFun_as_coe, AddEquiv.toEquiv_eq_coe]; erw [AddEquiv.coe_toEquiv]
+      rw [← AddEquiv.coe_toAddMonoidHom]
       refine Iff.mpr (AddMonoidHom.map_mul_iff (R := k[G]ᵐᵒᵖ) (S := kᵐᵒᵖ[G]) _) ?_
       -- Porting note: Was `ext`.
       refine AddMonoidHom.mul_op_ext _ _ <| addHom_ext' fun i₁ => AddMonoidHom.ext fun r₁ =>
         AddMonoidHom.mul_op_ext _ _ <| addHom_ext' fun i₂ => AddMonoidHom.ext fun r₂ => ?_
       -- Porting note: `reducible` cannot be `local` so proof gets long.
       dsimp
-      rw [AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply,
-        MulOpposite.opAddEquiv_symm_apply, MulOpposite.unop_mul (α := k[G])]
+      -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+      erw [AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply,
+        MulOpposite.opAddEquiv_symm_apply]; rw [MulOpposite.unop_mul (α := k[G])]
       dsimp
+      -- This was not needed before leanprover/lean4#2644
+      erw [mapRange_single, single_mul_single, mapRange_single, mapRange_single]
       simp only [mapRange_single, single_mul_single, ← op_mul, add_comm] }
 #align add_monoid_algebra.op_ring_equiv AddMonoidAlgebra.opRingEquiv
 #align add_monoid_algebra.op_ring_equiv_apply AddMonoidAlgebra.opRingEquiv_apply
chore: revert #7703 (#7710)

This reverts commit 26eb2b0a.

Diff
@@ -605,8 +605,7 @@ theorem liftNC_smul [MulOneClass G] {R : Type*} [Semiring R] (f : k →+* R) (g
   unfold MonoidAlgebra
   simp only [AddMonoidHom.coe_comp, Function.comp_apply, singleAddHom_apply, smulAddHom_apply,
     smul_single, smul_eq_mul, AddMonoidHom.coe_mulLeft]
-  -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
-  erw [liftNC_single, liftNC_single]; rw [AddMonoidHom.coe_coe, map_mul, mul_assoc]
+  rw [liftNC_single, liftNC_single, AddMonoidHom.coe_coe, map_mul, mul_assoc]
 #align monoid_algebra.lift_nc_smul MonoidAlgebra.liftNC_smul
 
 end MiscTheorems
@@ -765,9 +764,8 @@ theorem ringHom_ext {R} [Semiring k] [MulOneClass G] [Semiring R] {f g : MonoidA
     f = g :=
   RingHom.coe_addMonoidHom_injective <|
     addHom_ext fun a b => by
-      rw [← single, ← one_mul a, ← mul_one b, ← single_mul_single]
-      -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
-      erw [AddMonoidHom.coe_coe f, AddMonoidHom.coe_coe g]; rw [f.map_mul, g.map_mul, h₁, h_of]
+      rw [← single, ← one_mul a, ← mul_one b, ← single_mul_single, AddMonoidHom.coe_coe f,
+        AddMonoidHom.coe_coe g, f.map_mul, g.map_mul, h₁, h_of]
 #align monoid_algebra.ring_hom_ext MonoidAlgebra.ringHom_ext
 
 /-- If two ring homomorphisms from `MonoidAlgebra k G` are equal on all `single a 1`
@@ -1115,9 +1113,8 @@ protected noncomputable def opRingEquiv [Monoid G] :
   { opAddEquiv.symm.trans <|
       (Finsupp.mapRange.addEquiv (opAddEquiv : k ≃+ kᵐᵒᵖ)).trans <| Finsupp.domCongr opEquiv with
     map_mul' := by
-      -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
-      rw [Equiv.toFun_as_coe, AddEquiv.toEquiv_eq_coe]; erw [AddEquiv.coe_toEquiv]
-      rw [← AddEquiv.coe_toAddMonoidHom]
+      rw [Equiv.toFun_as_coe, AddEquiv.toEquiv_eq_coe, AddEquiv.coe_toEquiv,
+        ← AddEquiv.coe_toAddMonoidHom]
       refine Iff.mpr (AddMonoidHom.map_mul_iff (R := (MonoidAlgebra k G)ᵐᵒᵖ)
         (S := MonoidAlgebra kᵐᵒᵖ Gᵐᵒᵖ) _) ?_
       -- Porting note: Was `ext`.
@@ -1127,12 +1124,9 @@ protected noncomputable def opRingEquiv [Monoid G] :
       simp only [AddMonoidHom.coe_comp, AddEquiv.coe_toAddMonoidHom, opAddEquiv_apply,
         Function.comp_apply, singleAddHom_apply, AddMonoidHom.compr₂_apply, AddMonoidHom.coe_mul,
         AddMonoidHom.coe_mulLeft, AddMonoidHom.compl₂_apply]
-      -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
-      erw [AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply,
-        AddEquiv.trans_apply, AddEquiv.trans_apply, MulOpposite.opAddEquiv_symm_apply]
-      rw [MulOpposite.unop_mul (α := MonoidAlgebra k G)]
-      -- This was not needed before leanprover/lean4#2644
-      erw [unop_op, unop_op, single_mul_single]
+      rw [AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply,
+        AddEquiv.trans_apply, AddEquiv.trans_apply,
+        MulOpposite.opAddEquiv_symm_apply, MulOpposite.unop_mul (α := MonoidAlgebra k G)]
       simp }
 #align monoid_algebra.op_ring_equiv MonoidAlgebra.opRingEquiv
 #align monoid_algebra.op_ring_equiv_apply MonoidAlgebra.opRingEquiv_apply
@@ -1871,21 +1865,17 @@ protected noncomputable def opRingEquiv [AddCommMonoid G] :
   { MulOpposite.opAddEquiv.symm.trans
       (Finsupp.mapRange.addEquiv (MulOpposite.opAddEquiv : k ≃+ kᵐᵒᵖ)) with
     map_mul' := by
-      -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
-      rw [Equiv.toFun_as_coe, AddEquiv.toEquiv_eq_coe]; erw [AddEquiv.coe_toEquiv]
-      rw [← AddEquiv.coe_toAddMonoidHom]
+      rw [Equiv.toFun_as_coe, AddEquiv.toEquiv_eq_coe, AddEquiv.coe_toEquiv,
+        ← AddEquiv.coe_toAddMonoidHom]
       refine Iff.mpr (AddMonoidHom.map_mul_iff (R := k[G]ᵐᵒᵖ) (S := kᵐᵒᵖ[G]) _) ?_
       -- Porting note: Was `ext`.
       refine AddMonoidHom.mul_op_ext _ _ <| addHom_ext' fun i₁ => AddMonoidHom.ext fun r₁ =>
         AddMonoidHom.mul_op_ext _ _ <| addHom_ext' fun i₂ => AddMonoidHom.ext fun r₂ => ?_
       -- Porting note: `reducible` cannot be `local` so proof gets long.
       dsimp
-      -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
-      erw [AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply,
-        MulOpposite.opAddEquiv_symm_apply]; rw [MulOpposite.unop_mul (α := k[G])]
+      rw [AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply,
+        MulOpposite.opAddEquiv_symm_apply, MulOpposite.unop_mul (α := k[G])]
       dsimp
-      -- This was not needed before leanprover/lean4#2644
-      erw [mapRange_single, single_mul_single, mapRange_single, mapRange_single]
       simp only [mapRange_single, single_mul_single, ← op_mul, add_comm] }
 #align add_monoid_algebra.op_ring_equiv AddMonoidAlgebra.opRingEquiv
 #align add_monoid_algebra.op_ring_equiv_apply AddMonoidAlgebra.opRingEquiv_apply
feat: IsCancelAdd instances for (d)finsupp and monoid algebra (#7582)

The left and right versions would be pointless on AddMonoidAlgebra as addition is commutative.

Diff
@@ -90,6 +90,9 @@ instance MonoidAlgebra.addCommMonoid : AddCommMonoid (MonoidAlgebra k G) :=
   inferInstanceAs (AddCommMonoid (G →₀ k))
 #align monoid_algebra.add_comm_monoid MonoidAlgebra.addCommMonoid
 
+instance MonoidAlgebra.instIsCancelAdd [IsCancelAdd k] : IsCancelAdd (MonoidAlgebra k G) :=
+  inferInstanceAs (IsCancelAdd (G →₀ k))
+
 instance MonoidAlgebra.coeFun : CoeFun (MonoidAlgebra k G) fun _ => G → k :=
   Finsupp.coeFun
 #align monoid_algebra.has_coe_to_fun MonoidAlgebra.coeFun
@@ -1203,6 +1206,9 @@ instance addCommMonoid : AddCommMonoid k[G] :=
   inferInstanceAs (AddCommMonoid (G →₀ k))
 #align add_monoid_algebra.add_comm_monoid AddMonoidAlgebra.addCommMonoid
 
+instance instIsCancelAdd [IsCancelAdd k] : IsCancelAdd (AddMonoidAlgebra k G) :=
+  inferInstanceAs (IsCancelAdd (G →₀ k))
+
 instance coeFun : CoeFun k[G] fun _ => G → k :=
   Finsupp.coeFun
 #align add_monoid_algebra.has_coe_to_fun AddMonoidAlgebra.coeFun
chore: bump toolchain to v4.2.0-rc2 (#7703)

This includes all the changes from #7606.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -602,7 +602,8 @@ theorem liftNC_smul [MulOneClass G] {R : Type*} [Semiring R] (f : k →+* R) (g
   unfold MonoidAlgebra
   simp only [AddMonoidHom.coe_comp, Function.comp_apply, singleAddHom_apply, smulAddHom_apply,
     smul_single, smul_eq_mul, AddMonoidHom.coe_mulLeft]
-  rw [liftNC_single, liftNC_single, AddMonoidHom.coe_coe, map_mul, mul_assoc]
+  -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+  erw [liftNC_single, liftNC_single]; rw [AddMonoidHom.coe_coe, map_mul, mul_assoc]
 #align monoid_algebra.lift_nc_smul MonoidAlgebra.liftNC_smul
 
 end MiscTheorems
@@ -761,8 +762,9 @@ theorem ringHom_ext {R} [Semiring k] [MulOneClass G] [Semiring R] {f g : MonoidA
     f = g :=
   RingHom.coe_addMonoidHom_injective <|
     addHom_ext fun a b => by
-      rw [← single, ← one_mul a, ← mul_one b, ← single_mul_single, AddMonoidHom.coe_coe f,
-        AddMonoidHom.coe_coe g, f.map_mul, g.map_mul, h₁, h_of]
+      rw [← single, ← one_mul a, ← mul_one b, ← single_mul_single]
+      -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+      erw [AddMonoidHom.coe_coe f, AddMonoidHom.coe_coe g]; rw [f.map_mul, g.map_mul, h₁, h_of]
 #align monoid_algebra.ring_hom_ext MonoidAlgebra.ringHom_ext
 
 /-- If two ring homomorphisms from `MonoidAlgebra k G` are equal on all `single a 1`
@@ -1110,8 +1112,9 @@ protected noncomputable def opRingEquiv [Monoid G] :
   { opAddEquiv.symm.trans <|
       (Finsupp.mapRange.addEquiv (opAddEquiv : k ≃+ kᵐᵒᵖ)).trans <| Finsupp.domCongr opEquiv with
     map_mul' := by
-      rw [Equiv.toFun_as_coe, AddEquiv.toEquiv_eq_coe, AddEquiv.coe_toEquiv,
-        ← AddEquiv.coe_toAddMonoidHom]
+      -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+      rw [Equiv.toFun_as_coe, AddEquiv.toEquiv_eq_coe]; erw [AddEquiv.coe_toEquiv]
+      rw [← AddEquiv.coe_toAddMonoidHom]
       refine Iff.mpr (AddMonoidHom.map_mul_iff (R := (MonoidAlgebra k G)ᵐᵒᵖ)
         (S := MonoidAlgebra kᵐᵒᵖ Gᵐᵒᵖ) _) ?_
       -- Porting note: Was `ext`.
@@ -1121,9 +1124,12 @@ protected noncomputable def opRingEquiv [Monoid G] :
       simp only [AddMonoidHom.coe_comp, AddEquiv.coe_toAddMonoidHom, opAddEquiv_apply,
         Function.comp_apply, singleAddHom_apply, AddMonoidHom.compr₂_apply, AddMonoidHom.coe_mul,
         AddMonoidHom.coe_mulLeft, AddMonoidHom.compl₂_apply]
-      rw [AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply,
-        AddEquiv.trans_apply, AddEquiv.trans_apply,
-        MulOpposite.opAddEquiv_symm_apply, MulOpposite.unop_mul (α := MonoidAlgebra k G)]
+      -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+      erw [AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply,
+        AddEquiv.trans_apply, AddEquiv.trans_apply, MulOpposite.opAddEquiv_symm_apply]
+      rw [MulOpposite.unop_mul (α := MonoidAlgebra k G)]
+      -- This was not needed before leanprover/lean4#2644
+      erw [unop_op, unop_op, single_mul_single]
       simp }
 #align monoid_algebra.op_ring_equiv MonoidAlgebra.opRingEquiv
 #align monoid_algebra.op_ring_equiv_apply MonoidAlgebra.opRingEquiv_apply
@@ -1859,17 +1865,21 @@ protected noncomputable def opRingEquiv [AddCommMonoid G] :
   { MulOpposite.opAddEquiv.symm.trans
       (Finsupp.mapRange.addEquiv (MulOpposite.opAddEquiv : k ≃+ kᵐᵒᵖ)) with
     map_mul' := by
-      rw [Equiv.toFun_as_coe, AddEquiv.toEquiv_eq_coe, AddEquiv.coe_toEquiv,
-        ← AddEquiv.coe_toAddMonoidHom]
+      -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+      rw [Equiv.toFun_as_coe, AddEquiv.toEquiv_eq_coe]; erw [AddEquiv.coe_toEquiv]
+      rw [← AddEquiv.coe_toAddMonoidHom]
       refine Iff.mpr (AddMonoidHom.map_mul_iff (R := k[G]ᵐᵒᵖ) (S := kᵐᵒᵖ[G]) _) ?_
       -- Porting note: Was `ext`.
       refine AddMonoidHom.mul_op_ext _ _ <| addHom_ext' fun i₁ => AddMonoidHom.ext fun r₁ =>
         AddMonoidHom.mul_op_ext _ _ <| addHom_ext' fun i₂ => AddMonoidHom.ext fun r₂ => ?_
       -- Porting note: `reducible` cannot be `local` so proof gets long.
       dsimp
-      rw [AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply,
-        MulOpposite.opAddEquiv_symm_apply, MulOpposite.unop_mul (α := k[G])]
+      -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+      erw [AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply,
+        MulOpposite.opAddEquiv_symm_apply]; rw [MulOpposite.unop_mul (α := k[G])]
       dsimp
+      -- This was not needed before leanprover/lean4#2644
+      erw [mapRange_single, single_mul_single, mapRange_single, mapRange_single]
       simp only [mapRange_single, single_mul_single, ← op_mul, add_comm] }
 #align add_monoid_algebra.op_ring_equiv AddMonoidAlgebra.opRingEquiv
 #align add_monoid_algebra.op_ring_equiv_apply AddMonoidAlgebra.opRingEquiv_apply
refactor(Algebra/Algebra/Equiv): align AlgEquiv.ofLinearEquiv with AlgHom.ofLinearMap (#7537)

The former previously took a hypothesis about f (algebraMap R A r) = algebraMap R B r, but now needs only f 1 = 1, matching the latter. This doesn't make much difference at the two callers.

Diff
@@ -958,9 +958,9 @@ variable (k A)
 def domCongr (e : G ≃* H) : MonoidAlgebra A G ≃ₐ[k] MonoidAlgebra A H :=
   AlgEquiv.ofLinearEquiv
     (Finsupp.domLCongr e : (G →₀ A) ≃ₗ[k] (H →₀ A))
+    ((equivMapDomain_eq_mapDomain _ _).trans <| mapDomain_one e)
     (fun f g => (equivMapDomain_eq_mapDomain _ _).trans <| (mapDomain_mul e f g).trans <|
         congr_arg₂ _ (equivMapDomain_eq_mapDomain _ _).symm (equivMapDomain_eq_mapDomain _ _).symm)
-    (fun r => (equivMapDomain_eq_mapDomain _ _).trans <| mapDomain_algebraMap A e r)
 
 theorem domCongr_toAlgHom (e : G ≃* H) : (domCongr k A e).toAlgHom = mapDomainAlgHom k A e :=
   AlgHom.ext <| fun _ => equivMapDomain_eq_mapDomain _ _
@@ -2073,9 +2073,9 @@ variable [CommSemiring k] [AddMonoid G] [AddMonoid H] [Semiring A] [Algebra k A]
 def domCongr (e : G ≃+ H) : A[G] ≃ₐ[k] A[H] :=
   AlgEquiv.ofLinearEquiv
     (Finsupp.domLCongr e : (G →₀ A) ≃ₗ[k] (H →₀ A))
+    ((equivMapDomain_eq_mapDomain _ _).trans <| mapDomain_one e)
     (fun f g => (equivMapDomain_eq_mapDomain _ _).trans <| (mapDomain_mul e f g).trans <|
         congr_arg₂ _ (equivMapDomain_eq_mapDomain _ _).symm (equivMapDomain_eq_mapDomain _ _).symm)
-    (fun r => (equivMapDomain_eq_mapDomain _ _).trans <| mapDomain_algebraMap A e r)
 
 theorem domCongr_toAlgHom (e : G ≃+ H) : (domCongr k A e).toAlgHom = mapDomainAlgHom k A e :=
   AlgHom.ext <| fun _ => equivMapDomain_eq_mapDomain _ _
chore: fix nonterminal simps (#7497)

Fixes the nonterminal simps identified by #7496

Diff
@@ -600,7 +600,8 @@ theorem liftNC_smul [MulOneClass G] {R : Type*} [Semiring R] (f : k →+* R) (g
   refine addHom_ext' fun a => AddMonoidHom.ext fun b => ?_
   -- Porting note: `reducible` cannot be `local` so the proof gets more complex.
   unfold MonoidAlgebra
-  simp
+  simp only [AddMonoidHom.coe_comp, Function.comp_apply, singleAddHom_apply, smulAddHom_apply,
+    smul_single, smul_eq_mul, AddMonoidHom.coe_mulLeft]
   rw [liftNC_single, liftNC_single, AddMonoidHom.coe_coe, map_mul, mul_assoc]
 #align monoid_algebra.lift_nc_smul MonoidAlgebra.liftNC_smul
 
@@ -1117,7 +1118,9 @@ protected noncomputable def opRingEquiv [Monoid G] :
       refine AddMonoidHom.mul_op_ext _ _ <| addHom_ext' fun i₁ => AddMonoidHom.ext fun r₁ =>
         AddMonoidHom.mul_op_ext _ _ <| addHom_ext' fun i₂ => AddMonoidHom.ext fun r₂ => ?_
       -- Porting note: `reducible` cannot be `local` so proof gets long.
-      simp
+      simp only [AddMonoidHom.coe_comp, AddEquiv.coe_toAddMonoidHom, opAddEquiv_apply,
+        Function.comp_apply, singleAddHom_apply, AddMonoidHom.compr₂_apply, AddMonoidHom.coe_mul,
+        AddMonoidHom.coe_mulLeft, AddMonoidHom.compl₂_apply]
       rw [AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply,
         AddEquiv.trans_apply, AddEquiv.trans_apply,
         MulOpposite.opAddEquiv_symm_apply, MulOpposite.unop_mul (α := MonoidAlgebra k G)]
chore: tidy various files (#7359)
Diff
@@ -1837,9 +1837,7 @@ See note [partially-applied ext lemmas]. -/
 @[ext high]
 theorem ringHom_ext' {R} [Semiring k] [AddMonoid G] [Semiring R] {f g : k[G] →+* R}
     (h₁ : f.comp singleZeroRingHom = g.comp singleZeroRingHom)
-    (h_of :
-      (f : k[G] →* R).comp (of k G) =
-        (g : k[G] →* R).comp (of k G)) :
+    (h_of : (f : k[G] →* R).comp (of k G) = (g : k[G] →* R).comp (of k G)) :
     f = g :=
   ringHom_ext (RingHom.congr_fun h₁) (FunLike.congr_fun h_of)
 #align add_monoid_algebra.ring_hom_ext' AddMonoidAlgebra.ringHom_ext'
@@ -1854,14 +1852,13 @@ variable [Semiring k]
 the `AddMonoidAlgebra Rᵐᵒᵖ I` over the opposite ring, taking elements to their opposite. -/
 @[simps! (config := { simpRhs := true }) apply symm_apply]
 protected noncomputable def opRingEquiv [AddCommMonoid G] :
-    k[G]ᵐᵒᵖ ≃+* AddMonoidAlgebra kᵐᵒᵖ G :=
+    k[G]ᵐᵒᵖ ≃+* kᵐᵒᵖ[G] :=
   { MulOpposite.opAddEquiv.symm.trans
       (Finsupp.mapRange.addEquiv (MulOpposite.opAddEquiv : k ≃+ kᵐᵒᵖ)) with
     map_mul' := by
       rw [Equiv.toFun_as_coe, AddEquiv.toEquiv_eq_coe, AddEquiv.coe_toEquiv,
         ← AddEquiv.coe_toAddMonoidHom]
-      refine Iff.mpr (AddMonoidHom.map_mul_iff (R := k[G]ᵐᵒᵖ)
-        (S := AddMonoidAlgebra kᵐᵒᵖ G) _) ?_
+      refine Iff.mpr (AddMonoidHom.map_mul_iff (R := k[G]ᵐᵒᵖ) (S := kᵐᵒᵖ[G]) _) ?_
       -- Porting note: Was `ext`.
       refine AddMonoidHom.mul_op_ext _ _ <| addHom_ext' fun i₁ => AddMonoidHom.ext fun r₁ =>
         AddMonoidHom.mul_op_ext _ _ <| addHom_ext' fun i₂ => AddMonoidHom.ext fun r₂ => ?_
@@ -1907,8 +1904,7 @@ instance algebra [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
 
 /-- `Finsupp.single 0` as an `AlgHom` -/
 @[simps! apply]
-def singleZeroAlgHom [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
-    k →ₐ[R] k[G] :=
+def singleZeroAlgHom [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] : k →ₐ[R] k[G] :=
   { singleZeroRingHom with
     commutes' := fun r => by
       -- Porting note: `ext` → `refine Finsupp.ext fun _ => ?_`
@@ -1939,7 +1935,7 @@ def liftNCAlgHom (f : A →ₐ[k] B) (g : Multiplicative G →* B) (h_comm : ∀
     commutes' := by simp [liftNCRingHom] }
 #align add_monoid_algebra.lift_nc_alg_hom AddMonoidAlgebra.liftNCAlgHom
 
-/-- A `k`-algebra homomorphism from `MonoidAlgebra k G` is uniquely defined by its
+/-- A `k`-algebra homomorphism from `k[G]` is uniquely defined by its
 values on the functions `single a 1`. -/
 theorem algHom_ext ⦃φ₁ φ₂ : k[G] →ₐ[k] A⦄
     (h : ∀ x, φ₁ (single x 1) = φ₂ (single x 1)) : φ₁ = φ₂ :=
@@ -1949,9 +1945,7 @@ theorem algHom_ext ⦃φ₁ φ₂ : k[G] →ₐ[k] A⦄
 /-- See note [partially-applied ext lemmas]. -/
 @[ext high]
 theorem algHom_ext' ⦃φ₁ φ₂ : k[G] →ₐ[k] A⦄
-    (h :
-      (φ₁ : k[G] →* A).comp (of k G) =
-        (φ₂ : k[G] →* A).comp (of k G)) :
+    (h : (φ₁ : k[G] →* A).comp (of k G) = (φ₂ : k[G] →* A).comp (of k G)) :
     φ₁ = φ₂ :=
   algHom_ext <| FunLike.congr_fun h
 #align add_monoid_algebra.alg_hom_ext' AddMonoidAlgebra.algHom_ext'
@@ -1959,7 +1953,7 @@ theorem algHom_ext' ⦃φ₁ φ₂ : k[G] →ₐ[k] A⦄
 variable (k G A)
 
 /-- Any monoid homomorphism `G →* A` can be lifted to an algebra homomorphism
-`MonoidAlgebra k G →ₐ[k] A`. -/
+`k[G] →ₐ[k] A`. -/
 def lift : (Multiplicative G →* A) ≃ (k[G] →ₐ[k] A) :=
   { @MonoidAlgebra.lift k (Multiplicative G) _ _ A _ _ with
     invFun := fun f => (f : k[G] →* A).comp (of k G)
@@ -2072,7 +2066,7 @@ variable [CommSemiring k] [AddMonoid G] [AddMonoid H] [Semiring A] [Algebra k A]
 
 
 /-- If `e : G ≃* H` is a multiplicative equivalence between two monoids, then
-`MonoidAlgebra.domCongr e` is an algebra equivalence between their monoid algebras. -/
+`AddMonoidAlgebra.domCongr e` is an algebra equivalence between their monoid algebras. -/
 def domCongr (e : G ≃+ H) : A[G] ≃ₐ[k] A[H] :=
   AlgEquiv.ofLinearEquiv
     (Finsupp.domLCongr e : (G →₀ A) ≃ₗ[k] (H →₀ A))
chore: only four spaces for subsequent lines (#7286)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -116,7 +116,7 @@ theorem single_add (a : G) (b₁ b₂ : k) : single a (b₁ + b₂) = single a b
 
 @[simp]
 theorem sum_single_index [AddCommMonoid N] {a : G} {b : k} {h : G → k → N} (h_zero : h a 0 = 0) :
-  (single a b).sum h = h a b := Finsupp.sum_single_index h_zero
+    (single a b).sum h = h a b := Finsupp.sum_single_index h_zero
 
 @[simp]
 theorem sum_single (f : MonoidAlgebra k G) : f.sum single = f :=
@@ -1222,7 +1222,7 @@ theorem single_add (a : G) (b₁ b₂ : k) : single a (b₁ + b₂) = single a b
 
 @[simp]
 theorem sum_single_index [AddCommMonoid N] {a : G} {b : k} {h : G → k → N} (h_zero : h a 0 = 0) :
-  (single a b).sum h = h a b := Finsupp.sum_single_index h_zero
+    (single a b).sum h = h a b := Finsupp.sum_single_index h_zero
 
 @[simp]
 theorem sum_single (f : k[G]) : f.sum single = f :=
feat(AddMonoidAlgebra*): add notation R[A] for addMonoidAlgebra R A (#7203)

Introduce the notation R[A] for AddMonoidAlgebra R A. This is to align Mathlibs notation with the standard notation for group ring.

The notation is scoped in AddMonoidAlgebra and there is no analogous notation for MonoidAlgebra.

I only used the notation for single-character R and As and only in the range [a-zA-Z].

The extra lines are all in Mathlib/Algebra/MonoidAlgebra/Basic.lean. They are accounted for by extra text in the doc-module and the actual notation.

Affected files:

Counterexamples/ZeroDivisorsInAddMonoidAlgebras
Algebra/AlgebraicCard
Algebra/MonoidAlgebra/Basic
Algebra/MonoidAlgebra/Degree
Algebra/MonoidAlgebra/Division
Algebra/MonoidAlgebra/Grading
Algebra/MonoidAlgebra/NoZeroDivisors
Algebra/MonoidAlgebra/Support
Data/Polynomial/AlgebraMap
Data/Polynomial/Basic
Data/Polynomial/Eval
Data/Polynomial/Laurent
RingTheory/FiniteType
Diff
@@ -36,13 +36,17 @@ MvPolynomial σ α := AddMonoidAlgebra R (σ →₀ ℕ)
 
 When the domain is multiplicative, e.g. a group, this will be used to define the group ring.
 
+## Notation
+
+We introduce the notation `R[A]` for `AddMonoidAlgebra R A`.
+
 ## Implementation note
 Unfortunately because additive and multiplicative structures both appear in both cases,
 it doesn't appear to be possible to make much use of `to_additive`, and we just settle for
 saying everything twice.
 
 Similarly, I attempted to just define
-`AddMonoidAlgebra k G := MonoidAlgebra k (Multiplicative G)`, but the definitional equality
+`k[G] := MonoidAlgebra k (Multiplicative G)`, but the definitional equality
 `Multiplicative G = G` leaks through everywhere, and seems impossible to use.
 -/
 
@@ -1175,20 +1179,27 @@ def AddMonoidAlgebra :=
   G →₀ k
 #align add_monoid_algebra AddMonoidAlgebra
 
+@[inherit_doc]
+scoped[AddMonoidAlgebra] notation:9000 R:max "[" A "]" => AddMonoidAlgebra R A
+
+namespace AddMonoidAlgebra
+
 -- Porting note: The compiler couldn't derive this.
-instance AddMonoidAlgebra.inhabited : Inhabited (AddMonoidAlgebra k G) :=
+instance inhabited : Inhabited k[G] :=
   inferInstanceAs (Inhabited (G →₀ k))
 #align add_monoid_algebra.inhabited AddMonoidAlgebra.inhabited
 
 -- Porting note: The compiler couldn't derive this.
-instance AddMonoidAlgebra.addCommMonoid : AddCommMonoid (AddMonoidAlgebra k G) :=
+instance addCommMonoid : AddCommMonoid k[G] :=
   inferInstanceAs (AddCommMonoid (G →₀ k))
 #align add_monoid_algebra.add_comm_monoid AddMonoidAlgebra.addCommMonoid
 
-instance AddMonoidAlgebra.coeFun : CoeFun (AddMonoidAlgebra k G) fun _ => G → k :=
+instance coeFun : CoeFun k[G] fun _ => G → k :=
   Finsupp.coeFun
 #align add_monoid_algebra.has_coe_to_fun AddMonoidAlgebra.coeFun
 
+end AddMonoidAlgebra
+
 end
 
 namespace AddMonoidAlgebra
@@ -1202,9 +1213,9 @@ variable [Semiring k] [NonUnitalNonAssocSemiring R]
 -- Porting note: `reducible` cannot be `local`, so we replace some definitions and theorems with
 --               new ones which have new types.
 
-abbrev single (a : G) (b : k) : AddMonoidAlgebra k G := Finsupp.single a b
+abbrev single (a : G) (b : k) : k[G] := Finsupp.single a b
 
-theorem single_zero (a : G) : (single a 0 : AddMonoidAlgebra k G) = 0 := Finsupp.single_zero a
+theorem single_zero (a : G) : (single a 0 : k[G]) = 0 := Finsupp.single_zero a
 
 theorem single_add (a : G) (b₁ b₂ : k) : single a (b₁ + b₂) = single a b₁ + single a b₂ :=
   Finsupp.single_add a b₁ b₂
@@ -1214,7 +1225,7 @@ theorem sum_single_index [AddCommMonoid N] {a : G} {b : k} {h : G → k → N} (
   (single a b).sum h = h a b := Finsupp.sum_single_index h_zero
 
 @[simp]
-theorem sum_single (f : AddMonoidAlgebra k G) : f.sum single = f :=
+theorem sum_single (f : k[G]) : f.sum single = f :=
   Finsupp.sum_single f
 
 theorem single_apply {a a' : G} {b : k} [Decidable (a = a')] :
@@ -1224,11 +1235,11 @@ theorem single_apply {a a' : G} {b : k} [Decidable (a = a')] :
 @[simp]
 theorem single_eq_zero {a : G} {b : k} : single a b = 0 ↔ b = 0 := Finsupp.single_eq_zero
 
-abbrev mapDomain {G' : Type*} (f : G → G') (v : AddMonoidAlgebra k G) : AddMonoidAlgebra k G' :=
+abbrev mapDomain {G' : Type*} (f : G → G') (v : k[G]) : k[G'] :=
   Finsupp.mapDomain f v
 
 theorem mapDomain_sum {k' G' : Type*} [Semiring k'] {f : G → G'} {s : AddMonoidAlgebra k' G}
-    {v : G → k' → AddMonoidAlgebra k G} :
+    {v : G → k' → k[G]} :
     mapDomain f (s.sum v) = s.sum fun a b => mapDomain f (v a b) :=
   Finsupp.mapDomain_sum
 
@@ -1238,11 +1249,11 @@ theorem mapDomain_single {G' : Type*} {f : G → G'} {a : G} {b : k} :
 
 /-- A non-commutative version of `AddMonoidAlgebra.lift`: given an additive homomorphism
 `f : k →+ R` and a map `g : Multiplicative G → R`, returns the additive
-homomorphism from `AddMonoidAlgebra k G` such that `liftNC f g (single a b) = f b * g a`. If `f`
+homomorphism from `k[G]` such that `liftNC f g (single a b) = f b * g a`. If `f`
 is a ring homomorphism and the range of either `f` or `g` is in center of `R`, then the result is a
 ring homomorphism.  If `R` is a `k`-algebra and `f = algebraMap k R`, then the result is an algebra
 homomorphism called `AddMonoidAlgebra.lift`. -/
-def liftNC (f : k →+ R) (g : Multiplicative G → R) : AddMonoidAlgebra k G →+ R :=
+def liftNC (f : k →+ R) (g : Multiplicative G → R) : k[G] →+ R :=
   liftAddHom fun x : G => (AddMonoidHom.mulRight (g <| Multiplicative.ofAdd x)).comp f
 #align add_monoid_algebra.lift_nc AddMonoidAlgebra.liftNC
 
@@ -1258,20 +1269,20 @@ section Mul
 
 variable [Semiring k] [Add G]
 
-/-- The product of `f g : AddMonoidAlgebra k G` is the finitely supported function
+/-- The product of `f g : k[G]` is the finitely supported function
   whose value at `a` is the sum of `f x * g y` over all pairs `x, y`
   such that `x + y = a`. (Think of the product of multivariate
   polynomials where `α` is the additive monoid of monomial exponents.) -/
-instance hasMul : Mul (AddMonoidAlgebra k G) :=
+instance hasMul : Mul k[G] :=
   ⟨fun f g => f.sum fun a₁ b₁ => g.sum fun a₂ b₂ => single (a₁ + a₂) (b₁ * b₂)⟩
 #align add_monoid_algebra.has_mul AddMonoidAlgebra.hasMul
 
-theorem mul_def {f g : AddMonoidAlgebra k G} :
+theorem mul_def {f g : k[G]} :
     f * g = f.sum fun a₁ b₁ => g.sum fun a₂ b₂ => single (a₁ + a₂) (b₁ * b₂) :=
   rfl
 #align add_monoid_algebra.mul_def AddMonoidAlgebra.mul_def
 
-instance nonUnitalNonAssocSemiring : NonUnitalNonAssocSemiring (AddMonoidAlgebra k G) :=
+instance nonUnitalNonAssocSemiring : NonUnitalNonAssocSemiring k[G] :=
   { Finsupp.addCommMonoid with
     -- Porting note: `refine` & `exact` are required because `simp` behaves differently.
     left_distrib := fun f g h => by
@@ -1307,7 +1318,7 @@ instance nonUnitalNonAssocSemiring : NonUnitalNonAssocSemiring (AddMonoidAlgebra
 variable [Semiring R]
 
 theorem liftNC_mul {g_hom : Type*} [MulHomClass g_hom (Multiplicative G) R] (f : k →+* R)
-    (g : g_hom) (a b : AddMonoidAlgebra k G)
+    (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 :=
   (MonoidAlgebra.liftNC_mul f g _ _ @h_comm : _)
@@ -1321,11 +1332,11 @@ variable [Semiring k] [Zero G] [NonAssocSemiring R]
 
 /-- The unit of the multiplication is `single 1 1`, i.e. the function
   that is `1` at `0` and zero elsewhere. -/
-instance one : One (AddMonoidAlgebra k G) :=
+instance one : One k[G] :=
   ⟨single 0 1⟩
 #align add_monoid_algebra.has_one AddMonoidAlgebra.one
 
-theorem one_def : (1 : AddMonoidAlgebra k G) = single 0 1 :=
+theorem one_def : (1 : k[G]) = single 0 1 :=
   rfl
 #align add_monoid_algebra.one_def AddMonoidAlgebra.one_def
 
@@ -1341,7 +1352,7 @@ section Semigroup
 
 variable [Semiring k] [AddSemigroup G]
 
-instance nonUnitalSemiring : NonUnitalSemiring (AddMonoidAlgebra k G) :=
+instance nonUnitalSemiring : NonUnitalSemiring k[G] :=
   { AddMonoidAlgebra.nonUnitalNonAssocSemiring with
     mul_assoc := fun f g h => by
       -- Porting note: `reducible` cannot be `local` so proof gets long.
@@ -1360,7 +1371,7 @@ section MulOneClass
 
 variable [Semiring k] [AddZeroClass G]
 
-instance nonAssocSemiring : NonAssocSemiring (AddMonoidAlgebra k G) :=
+instance nonAssocSemiring : NonAssocSemiring k[G] :=
   { AddMonoidAlgebra.nonUnitalNonAssocSemiring with
     natCast := fun n => single 0 n
     natCast_zero := by simp
@@ -1373,7 +1384,7 @@ instance nonAssocSemiring : NonAssocSemiring (AddMonoidAlgebra k G) :=
         mul_one, sum_single] }
 #align add_monoid_algebra.non_assoc_semiring AddMonoidAlgebra.nonAssocSemiring
 
-theorem nat_cast_def (n : ℕ) : (n : AddMonoidAlgebra k G) = single (0 : G) (n : k) :=
+theorem nat_cast_def (n : ℕ) : (n : k[G]) = single (0 : G) (n : k) :=
   rfl
 #align add_monoid_algebra.nat_cast_def AddMonoidAlgebra.nat_cast_def
 
@@ -1384,13 +1395,13 @@ end MulOneClass
 
 section Semiring
 
-instance smulZeroClass [Semiring k] [SMulZeroClass R k] : SMulZeroClass R (AddMonoidAlgebra k G) :=
+instance smulZeroClass [Semiring k] [SMulZeroClass R k] : SMulZeroClass R k[G] :=
   Finsupp.smulZeroClass
 #align add_monoid_algebra.smul_zero_class AddMonoidAlgebra.smulZeroClass
 
 variable [Semiring k] [AddMonoid G]
 
-instance semiring : Semiring (AddMonoidAlgebra k G) :=
+instance semiring : Semiring k[G] :=
   { AddMonoidAlgebra.nonUnitalSemiring,
     AddMonoidAlgebra.nonAssocSemiring with }
 #align add_monoid_algebra.semiring AddMonoidAlgebra.semiring
@@ -1399,7 +1410,7 @@ variable [Semiring R]
 
 /-- `liftNC` as a `RingHom`, for when `f` and `g` commute -/
 def liftNCRingHom (f : k →+* R) (g : Multiplicative G →* R) (h_comm : ∀ x y, Commute (f x) (g y)) :
-    AddMonoidAlgebra k G →+* R :=
+    k[G] →+* R :=
   { liftNC (f : k →+ R) g with
     map_one' := liftNC_one _ _
     map_mul' := fun _a _b => liftNC_mul _ _ _ _ fun {_ _} _ => h_comm _ _ }
@@ -1408,12 +1419,12 @@ def liftNCRingHom (f : k →+* R) (g : Multiplicative G →* R) (h_comm : ∀ x
 end Semiring
 
 instance nonUnitalCommSemiring [CommSemiring k] [AddCommSemigroup G] :
-    NonUnitalCommSemiring (AddMonoidAlgebra k G) :=
+    NonUnitalCommSemiring k[G] :=
   { AddMonoidAlgebra.nonUnitalSemiring with
     mul_comm := @mul_comm (MonoidAlgebra k <| Multiplicative G) _ }
 #align add_monoid_algebra.non_unital_comm_semiring AddMonoidAlgebra.nonUnitalCommSemiring
 
-instance nontrivial [Semiring k] [Nontrivial k] [Nonempty G] : Nontrivial (AddMonoidAlgebra k G) :=
+instance nontrivial [Semiring k] [Nontrivial k] [Nonempty G] : Nontrivial k[G] :=
   Finsupp.nontrivial
 #align add_monoid_algebra.nontrivial AddMonoidAlgebra.nontrivial
 
@@ -1422,27 +1433,27 @@ instance nontrivial [Semiring k] [Nontrivial k] [Nonempty G] : Nontrivial (AddMo
 
 section DerivedInstances
 
-instance commSemiring [CommSemiring k] [AddCommMonoid G] : CommSemiring (AddMonoidAlgebra k G) :=
+instance commSemiring [CommSemiring k] [AddCommMonoid G] : CommSemiring k[G] :=
   { AddMonoidAlgebra.nonUnitalCommSemiring, AddMonoidAlgebra.semiring with }
 #align add_monoid_algebra.comm_semiring AddMonoidAlgebra.commSemiring
 
-instance unique [Semiring k] [Subsingleton k] : Unique (AddMonoidAlgebra k G) :=
+instance unique [Semiring k] [Subsingleton k] : Unique k[G] :=
   Finsupp.uniqueOfRight
 #align add_monoid_algebra.unique AddMonoidAlgebra.unique
 
-instance addCommGroup [Ring k] : AddCommGroup (AddMonoidAlgebra k G) :=
+instance addCommGroup [Ring k] : AddCommGroup k[G] :=
   Finsupp.addCommGroup
 #align add_monoid_algebra.add_comm_group AddMonoidAlgebra.addCommGroup
 
-instance nonUnitalNonAssocRing [Ring k] [Add G] : NonUnitalNonAssocRing (AddMonoidAlgebra k G) :=
+instance nonUnitalNonAssocRing [Ring k] [Add G] : NonUnitalNonAssocRing k[G] :=
   { AddMonoidAlgebra.addCommGroup, AddMonoidAlgebra.nonUnitalNonAssocSemiring with }
 #align add_monoid_algebra.non_unital_non_assoc_ring AddMonoidAlgebra.nonUnitalNonAssocRing
 
-instance nonUnitalRing [Ring k] [AddSemigroup G] : NonUnitalRing (AddMonoidAlgebra k G) :=
+instance nonUnitalRing [Ring k] [AddSemigroup G] : NonUnitalRing k[G] :=
   { AddMonoidAlgebra.addCommGroup, AddMonoidAlgebra.nonUnitalSemiring with }
 #align add_monoid_algebra.non_unital_ring AddMonoidAlgebra.nonUnitalRing
 
-instance nonAssocRing [Ring k] [AddZeroClass G] : NonAssocRing (AddMonoidAlgebra k G) :=
+instance nonAssocRing [Ring k] [AddZeroClass G] : NonAssocRing k[G] :=
   { AddMonoidAlgebra.addCommGroup,
     AddMonoidAlgebra.nonAssocSemiring with
     intCast := fun z => single 0 (z : k)
@@ -1452,59 +1463,59 @@ instance nonAssocRing [Ring k] [AddZeroClass G] : NonAssocRing (AddMonoidAlgebra
 #align add_monoid_algebra.non_assoc_ring AddMonoidAlgebra.nonAssocRing
 
 theorem int_cast_def [Ring k] [AddZeroClass G] (z : ℤ) :
-    (z : AddMonoidAlgebra k G) = single (0 : G) (z : k) :=
+    (z : k[G]) = single (0 : G) (z : k) :=
   rfl
 #align add_monoid_algebra.int_cast_def AddMonoidAlgebra.int_cast_def
 
-instance ring [Ring k] [AddMonoid G] : Ring (AddMonoidAlgebra k G) :=
+instance ring [Ring k] [AddMonoid G] : Ring k[G] :=
   { AddMonoidAlgebra.nonAssocRing, AddMonoidAlgebra.semiring with }
 #align add_monoid_algebra.ring AddMonoidAlgebra.ring
 
 instance nonUnitalCommRing [CommRing k] [AddCommSemigroup G] :
-    NonUnitalCommRing (AddMonoidAlgebra k G) :=
+    NonUnitalCommRing k[G] :=
   { AddMonoidAlgebra.nonUnitalCommSemiring, AddMonoidAlgebra.nonUnitalRing with }
 #align add_monoid_algebra.non_unital_comm_ring AddMonoidAlgebra.nonUnitalCommRing
 
-instance commRing [CommRing k] [AddCommMonoid G] : CommRing (AddMonoidAlgebra k G) :=
+instance commRing [CommRing k] [AddCommMonoid G] : CommRing k[G] :=
   { AddMonoidAlgebra.nonUnitalCommRing, AddMonoidAlgebra.ring with }
 #align add_monoid_algebra.comm_ring AddMonoidAlgebra.commRing
 
 variable {S : Type*}
 
-instance distribSMul [Semiring k] [DistribSMul R k] : DistribSMul R (AddMonoidAlgebra k G) :=
+instance distribSMul [Semiring k] [DistribSMul R k] : DistribSMul R k[G] :=
   Finsupp.distribSMul G k
 #align add_monoid_algebra.distrib_smul AddMonoidAlgebra.distribSMul
 
 instance distribMulAction [Monoid R] [Semiring k] [DistribMulAction R k] :
-    DistribMulAction R (AddMonoidAlgebra k G) :=
+    DistribMulAction R k[G] :=
   Finsupp.distribMulAction G k
 #align add_monoid_algebra.distrib_mul_action AddMonoidAlgebra.distribMulAction
 
 instance faithfulSMul [Semiring k] [SMulZeroClass R k] [FaithfulSMul R k] [Nonempty G] :
-    FaithfulSMul R (AddMonoidAlgebra k G) :=
+    FaithfulSMul R k[G] :=
   Finsupp.faithfulSMul
 #align add_monoid_algebra.faithful_smul AddMonoidAlgebra.faithfulSMul
 
-instance module [Semiring R] [Semiring k] [Module R k] : Module R (AddMonoidAlgebra k G) :=
+instance module [Semiring R] [Semiring k] [Module R k] : Module R k[G] :=
   Finsupp.module G k
 #align add_monoid_algebra.module AddMonoidAlgebra.module
 
 instance isScalarTower [Semiring k] [SMulZeroClass R k] [SMulZeroClass S k] [SMul R S]
-    [IsScalarTower R S k] : IsScalarTower R S (AddMonoidAlgebra k G) :=
+    [IsScalarTower R S k] : IsScalarTower R S k[G] :=
   Finsupp.isScalarTower G k
 #align add_monoid_algebra.is_scalar_tower AddMonoidAlgebra.isScalarTower
 
 instance smulCommClass [Semiring k] [SMulZeroClass R k] [SMulZeroClass S k] [SMulCommClass R S k] :
-    SMulCommClass R S (AddMonoidAlgebra k G) :=
+    SMulCommClass R S k[G] :=
   Finsupp.smulCommClass G k
 #align add_monoid_algebra.smul_comm_tower AddMonoidAlgebra.smulCommClass
 
 instance isCentralScalar [Semiring k] [SMulZeroClass R k] [SMulZeroClass Rᵐᵒᵖ k]
-    [IsCentralScalar R k] : IsCentralScalar R (AddMonoidAlgebra k G) :=
+    [IsCentralScalar R k] : IsCentralScalar R k[G] :=
   Finsupp.isCentralScalar G k
 #align add_monoid_algebra.is_central_scalar AddMonoidAlgebra.isCentralScalar
 
-/-! It is hard to state the equivalent of `DistribMulAction G (AddMonoidAlgebra k G)`
+/-! It is hard to state the equivalent of `DistribMulAction G k[G]`
 because we've never discussed actions of additive groups. -/
 
 
@@ -1514,12 +1525,12 @@ section MiscTheorems
 
 variable [Semiring k]
 
-theorem mul_apply [DecidableEq G] [Add G] (f g : AddMonoidAlgebra k G) (x : G) :
+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 :=
   @MonoidAlgebra.mul_apply k (Multiplicative G) _ _ _ _ _ _
 #align add_monoid_algebra.mul_apply AddMonoidAlgebra.mul_apply
 
-theorem mul_apply_antidiagonal [Add G] (f g : AddMonoidAlgebra k G) (x : G) (s : Finset (G × G))
+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 in s, f p.1 * g p.2 :=
   @MonoidAlgebra.mul_apply_antidiagonal k (Multiplicative G) _ _ _ _ _ s @hs
 #align add_monoid_algebra.mul_apply_antidiagonal AddMonoidAlgebra.mul_apply_antidiagonal
@@ -1570,21 +1581,21 @@ variable (k G)
 
 /-- The embedding of an additive magma into its additive magma algebra. -/
 @[simps]
-def ofMagma [Add G] : Multiplicative G →ₙ* AddMonoidAlgebra k G where
+def ofMagma [Add G] : Multiplicative G →ₙ* k[G] where
   toFun a := single a 1
   map_mul' a b := by simp only [mul_def, mul_one, sum_single_index, single_eq_zero, mul_zero]; rfl
 #align add_monoid_algebra.of_magma AddMonoidAlgebra.ofMagma
 #align add_monoid_algebra.of_magma_apply AddMonoidAlgebra.ofMagma_apply
 
 /-- Embedding of a magma with zero into its magma algebra. -/
-def of [AddZeroClass G] : Multiplicative G →* AddMonoidAlgebra k G :=
+def of [AddZeroClass G] : Multiplicative G →* k[G] :=
   { ofMagma k G with
     toFun := fun a => single a 1
     map_one' := rfl }
 #align add_monoid_algebra.of AddMonoidAlgebra.of
 
 /-- Embedding of a magma with zero `G`, into its magma algebra, having `G` as source. -/
-def of' : G → AddMonoidAlgebra k G := fun a => single a 1
+def of' : G → k[G] := fun a => single a 1
 #align add_monoid_algebra.of' AddMonoidAlgebra.of'
 
 end
@@ -1614,49 +1625,49 @@ Note the order of the elements of the product are reversed compared to the argum
 `Finsupp.single`.
 -/
 @[simps]
-def singleHom [AddZeroClass G] : k × Multiplicative G →* AddMonoidAlgebra k G where
+def singleHom [AddZeroClass G] : k × Multiplicative G →* k[G] where
   toFun a := single (Multiplicative.toAdd a.2) a.1
   map_one' := rfl
   map_mul' _a _b := single_mul_single.symm
 #align add_monoid_algebra.single_hom AddMonoidAlgebra.singleHom
 #align add_monoid_algebra.single_hom_apply AddMonoidAlgebra.singleHom_apply
 
-theorem mul_single_apply_aux [Add G] (f : AddMonoidAlgebra k G) (r : k) (x y z : G)
+theorem mul_single_apply_aux [Add G] (f : k[G]) (r : k) (x y z : G)
     (H : ∀ a, a + x = z ↔ a = y) : (f * single x r) z = f y * r :=
   @MonoidAlgebra.mul_single_apply_aux k (Multiplicative G) _ _ _ _ _ _ _ H
 #align add_monoid_algebra.mul_single_apply_aux AddMonoidAlgebra.mul_single_apply_aux
 
-theorem mul_single_zero_apply [AddZeroClass G] (f : AddMonoidAlgebra k G) (r : k) (x : G) :
+theorem mul_single_zero_apply [AddZeroClass G] (f : k[G]) (r : k) (x : G) :
     (f * single (0 : G) r) x = f x * r :=
   f.mul_single_apply_aux r _ _ _ fun a => by rw [add_zero]
 #align add_monoid_algebra.mul_single_zero_apply AddMonoidAlgebra.mul_single_zero_apply
 
-theorem mul_single_apply_of_not_exists_add [Add G] (r : k) {g g' : G} (x : AddMonoidAlgebra k G)
+theorem mul_single_apply_of_not_exists_add [Add G] (r : k) {g g' : G} (x : k[G])
     (h : ¬∃ d, g' = d + g) : (x * single g r) g' = 0 :=
   @MonoidAlgebra.mul_single_apply_of_not_exists_mul k (Multiplicative G) _ _ _ _ _ _ h
 #align add_monoid_algebra.mul_single_apply_of_not_exists_add AddMonoidAlgebra.mul_single_apply_of_not_exists_add
 
-theorem single_mul_apply_aux [Add G] (f : AddMonoidAlgebra k G) (r : k) (x y z : G)
+theorem single_mul_apply_aux [Add G] (f : k[G]) (r : k) (x y z : G)
     (H : ∀ a, x + a = y ↔ a = z) : (single x r * f) y = r * f z :=
   @MonoidAlgebra.single_mul_apply_aux k (Multiplicative G) _ _ _ _ _ _ _ H
 #align add_monoid_algebra.single_mul_apply_aux AddMonoidAlgebra.single_mul_apply_aux
 
-theorem single_zero_mul_apply [AddZeroClass G] (f : AddMonoidAlgebra k G) (r : k) (x : G) :
+theorem single_zero_mul_apply [AddZeroClass G] (f : k[G]) (r : k) (x : G) :
     (single (0 : G) r * f) x = r * f x :=
   f.single_mul_apply_aux r _ _ _ fun a => by rw [zero_add]
 #align add_monoid_algebra.single_zero_mul_apply AddMonoidAlgebra.single_zero_mul_apply
 
-theorem single_mul_apply_of_not_exists_add [Add G] (r : k) {g g' : G} (x : AddMonoidAlgebra k G)
+theorem single_mul_apply_of_not_exists_add [Add G] (r : k) {g g' : G} (x : k[G])
     (h : ¬∃ d, g' = g + d) : (single g r * x) g' = 0 :=
   @MonoidAlgebra.single_mul_apply_of_not_exists_mul k (Multiplicative G) _ _ _ _ _ _ h
 #align add_monoid_algebra.single_mul_apply_of_not_exists_add AddMonoidAlgebra.single_mul_apply_of_not_exists_add
 
-theorem mul_single_apply [AddGroup G] (f : AddMonoidAlgebra k G) (r : k) (x y : G) :
+theorem mul_single_apply [AddGroup G] (f : k[G]) (r : k) (x y : G) :
     (f * single x r) y = f (y - x) * r :=
   (sub_eq_add_neg y x).symm ▸ @MonoidAlgebra.mul_single_apply k (Multiplicative G) _ _ _ _ _ _
 #align add_monoid_algebra.mul_single_apply AddMonoidAlgebra.mul_single_apply
 
-theorem single_mul_apply [AddGroup G] (r : k) (x : G) (f : AddMonoidAlgebra k G) (y : G) :
+theorem single_mul_apply [AddGroup G] (r : k) (x : G) (f : k[G]) (y : G) :
     (single x r * f) y = r * f (-x + y) :=
   @MonoidAlgebra.single_mul_apply k (Multiplicative G) _ _ _ _ _ _
 #align add_monoid_algebra.single_mul_apply AddMonoidAlgebra.single_mul_apply
@@ -1667,9 +1678,9 @@ theorem liftNC_smul {R : Type*} [AddZeroClass G] [Semiring R] (f : k →+* R)
   @MonoidAlgebra.liftNC_smul k (Multiplicative G) _ _ _ _ f g c φ
 #align add_monoid_algebra.lift_nc_smul AddMonoidAlgebra.liftNC_smul
 
-theorem induction_on [AddMonoid G] {p : AddMonoidAlgebra k G → Prop} (f : AddMonoidAlgebra k G)
+theorem induction_on [AddMonoid G] {p : k[G] → Prop} (f : k[G])
     (hM : ∀ g, p (of k G (Multiplicative.ofAdd g)))
-    (hadd : ∀ f g : AddMonoidAlgebra k G, p f → p g → p (f + g))
+    (hadd : ∀ f g : k[G], p f → p g → p (f + g))
     (hsmul : ∀ (r : k) (f), p f → p (r • f)) : p f := by
   refine' Finsupp.induction_linear f _ (fun f g hf hg => hadd f g hf hg) fun g r => _
   · simpa using hsmul 0 (of k G (Multiplicative.ofAdd 0)) (hM 0)
@@ -1682,7 +1693,7 @@ theorem induction_on [AddMonoid G] {p : AddMonoidAlgebra k G → Prop} (f : AddM
 `Finsupp.mapDomain f` is a ring homomorphism between their add monoid algebras. -/
 @[simps]
 def mapDomainRingHom (k : Type*) [Semiring k] {H F : Type*} [AddMonoid G] [AddMonoid H]
-    [AddMonoidHomClass F G H] (f : F) : AddMonoidAlgebra k G →+* AddMonoidAlgebra k H :=
+    [AddMonoidHomClass F G H] (f : F) : k[G] →+* k[H] :=
   { (Finsupp.mapDomain.addMonoidHom f : MonoidAlgebra k G →+ MonoidAlgebra k H) with
     map_one' := mapDomain_one f
     map_mul' := fun x y => mapDomain_mul f x y }
@@ -1696,7 +1707,7 @@ end AddMonoidAlgebra
 /-!
 #### Conversions between `AddMonoidAlgebra` and `MonoidAlgebra`
 
-We have not defined `AddMonoidAlgebra k G = MonoidAlgebra k (Multiplicative G)`
+We have not defined `k[G] = MonoidAlgebra k (Multiplicative G)`
 because historically this caused problems;
 since the changes that have made `nsmul` definitional, this would be possible,
 but for now we just construct the ring isomorphisms using `RingEquiv.refl _`.
@@ -1744,7 +1755,7 @@ section NonUnitalNonAssocAlgebra
 variable (k) [Semiring k] [DistribSMul R k] [Add G]
 
 instance isScalarTower_self [IsScalarTower R k k] :
-    IsScalarTower R (AddMonoidAlgebra k G) (AddMonoidAlgebra k G) :=
+    IsScalarTower R k[G] k[G] :=
   @MonoidAlgebra.isScalarTower_self k (Multiplicative G) R _ _ _ _
 #align add_monoid_algebra.is_scalar_tower_self AddMonoidAlgebra.isScalarTower_self
 
@@ -1752,37 +1763,37 @@ instance isScalarTower_self [IsScalarTower R k k] :
 `R = k` in the below. In other words, if the coefficients are commutative amongst themselves, they
 also commute with the algebra multiplication. -/
 instance smulCommClass_self [SMulCommClass R k k] :
-    SMulCommClass R (AddMonoidAlgebra k G) (AddMonoidAlgebra k G) :=
+    SMulCommClass R k[G] k[G] :=
   @MonoidAlgebra.smulCommClass_self k (Multiplicative G) R _ _ _ _
 #align add_monoid_algebra.smul_comm_class_self AddMonoidAlgebra.smulCommClass_self
 
 instance smulCommClass_symm_self [SMulCommClass k R k] :
-    SMulCommClass (AddMonoidAlgebra k G) R (AddMonoidAlgebra k G) :=
+    SMulCommClass k[G] R k[G] :=
   @MonoidAlgebra.smulCommClass_symm_self k (Multiplicative G) R _ _ _ _
 #align add_monoid_algebra.smul_comm_class_symm_self AddMonoidAlgebra.smulCommClass_symm_self
 
 variable {A : Type u₃} [NonUnitalNonAssocSemiring A]
 
-/-- A non_unital `k`-algebra homomorphism from `AddMonoidAlgebra k G` is uniquely defined by its
+/-- A non_unital `k`-algebra homomorphism from `k[G]` is uniquely defined by its
 values on the functions `single a 1`. -/
-theorem nonUnitalAlgHom_ext [DistribMulAction k A] {φ₁ φ₂ : AddMonoidAlgebra k G →ₙₐ[k] A}
+theorem nonUnitalAlgHom_ext [DistribMulAction k A] {φ₁ φ₂ : k[G] →ₙₐ[k] A}
     (h : ∀ x, φ₁ (single x 1) = φ₂ (single x 1)) : φ₁ = φ₂ :=
   @MonoidAlgebra.nonUnitalAlgHom_ext k (Multiplicative G) _ _ _ _ _ φ₁ φ₂ h
 #align add_monoid_algebra.non_unital_alg_hom_ext AddMonoidAlgebra.nonUnitalAlgHom_ext
 
 /-- See note [partially-applied ext lemmas]. -/
 @[ext high]
-theorem nonUnitalAlgHom_ext' [DistribMulAction k A] {φ₁ φ₂ : AddMonoidAlgebra k G →ₙₐ[k] A}
+theorem nonUnitalAlgHom_ext' [DistribMulAction k A] {φ₁ φ₂ : k[G] →ₙₐ[k] A}
     (h : φ₁.toMulHom.comp (ofMagma k G) = φ₂.toMulHom.comp (ofMagma k G)) : φ₁ = φ₂ :=
   @MonoidAlgebra.nonUnitalAlgHom_ext' k (Multiplicative G) _ _ _ _ _ φ₁ φ₂ h
 #align add_monoid_algebra.non_unital_alg_hom_ext' AddMonoidAlgebra.nonUnitalAlgHom_ext'
 
-/-- The functor `G ↦ AddMonoidAlgebra k G`, from the category of magmas to the category of
+/-- The functor `G ↦ k[G]`, from the category of magmas to the category of
 non-unital, non-associative algebras over `k` is adjoint to the forgetful functor in the other
 direction. -/
 @[simps apply_apply symm_apply]
 def liftMagma [Module k A] [IsScalarTower k A A] [SMulCommClass k A A] :
-    (Multiplicative G →ₙ* A) ≃ (AddMonoidAlgebra k G →ₙₐ[k] A) :=
+    (Multiplicative G →ₙ* A) ≃ (k[G] →ₙₐ[k] A) :=
   { (MonoidAlgebra.liftMagma k : (Multiplicative G →ₙ* A) ≃ (_ →ₙₐ[k] A)) with
     toFun := fun f =>
       { (MonoidAlgebra.liftMagma k f : _) with
@@ -1803,7 +1814,7 @@ section Algebra
 
 /-- `Finsupp.single 0` as a `RingHom` -/
 @[simps]
-def singleZeroRingHom [Semiring k] [AddMonoid G] : k →+* AddMonoidAlgebra k G :=
+def singleZeroRingHom [Semiring k] [AddMonoid G] : k →+* k[G] :=
   { Finsupp.singleAddHom 0 with
     map_one' := rfl
     -- Porting note: Was `rw`.
@@ -1811,24 +1822,24 @@ def singleZeroRingHom [Semiring k] [AddMonoid G] : k →+* AddMonoidAlgebra k G
 #align add_monoid_algebra.single_zero_ring_hom AddMonoidAlgebra.singleZeroRingHom
 #align add_monoid_algebra.single_zero_ring_hom_apply AddMonoidAlgebra.singleZeroRingHom_apply
 
-/-- If two ring homomorphisms from `AddMonoidAlgebra k G` are equal on all `single a 1`
+/-- If two ring homomorphisms from `k[G]` are equal on all `single a 1`
 and `single 0 b`, then they are equal. -/
-theorem ringHom_ext {R} [Semiring k] [AddMonoid G] [Semiring R] {f g : AddMonoidAlgebra k G →+* R}
+theorem ringHom_ext {R} [Semiring k] [AddMonoid G] [Semiring R] {f g : k[G] →+* R}
     (h₀ : ∀ b, f (single 0 b) = g (single 0 b)) (h_of : ∀ a, f (single a 1) = g (single a 1)) :
     f = g :=
   @MonoidAlgebra.ringHom_ext k (Multiplicative G) R _ _ _ _ _ h₀ h_of
 #align add_monoid_algebra.ring_hom_ext AddMonoidAlgebra.ringHom_ext
 
-/-- If two ring homomorphisms from `AddMonoidAlgebra k G` are equal on all `single a 1`
+/-- If two ring homomorphisms from `k[G]` are equal on all `single a 1`
 and `single 0 b`, then they are equal.
 
 See note [partially-applied ext lemmas]. -/
 @[ext high]
-theorem ringHom_ext' {R} [Semiring k] [AddMonoid G] [Semiring R] {f g : AddMonoidAlgebra k G →+* R}
+theorem ringHom_ext' {R} [Semiring k] [AddMonoid G] [Semiring R] {f g : k[G] →+* R}
     (h₁ : f.comp singleZeroRingHom = g.comp singleZeroRingHom)
     (h_of :
-      (f : AddMonoidAlgebra k G →* R).comp (of k G) =
-        (g : AddMonoidAlgebra k G →* R).comp (of k G)) :
+      (f : k[G] →* R).comp (of k G) =
+        (g : k[G] →* R).comp (of k G)) :
     f = g :=
   ringHom_ext (RingHom.congr_fun h₁) (FunLike.congr_fun h_of)
 #align add_monoid_algebra.ring_hom_ext' AddMonoidAlgebra.ringHom_ext'
@@ -1839,17 +1850,17 @@ open Finsupp MulOpposite
 
 variable [Semiring k]
 
-/-- The opposite of an `AddMonoidAlgebra R I` is ring equivalent to
+/-- The opposite of an `R[I]` is ring equivalent to
 the `AddMonoidAlgebra Rᵐᵒᵖ I` over the opposite ring, taking elements to their opposite. -/
 @[simps! (config := { simpRhs := true }) apply symm_apply]
 protected noncomputable def opRingEquiv [AddCommMonoid G] :
-    (AddMonoidAlgebra k G)ᵐᵒᵖ ≃+* AddMonoidAlgebra kᵐᵒᵖ G :=
+    k[G]ᵐᵒᵖ ≃+* AddMonoidAlgebra kᵐᵒᵖ G :=
   { MulOpposite.opAddEquiv.symm.trans
       (Finsupp.mapRange.addEquiv (MulOpposite.opAddEquiv : k ≃+ kᵐᵒᵖ)) with
     map_mul' := by
       rw [Equiv.toFun_as_coe, AddEquiv.toEquiv_eq_coe, AddEquiv.coe_toEquiv,
         ← AddEquiv.coe_toAddMonoidHom]
-      refine Iff.mpr (AddMonoidHom.map_mul_iff (R := (AddMonoidAlgebra k G)ᵐᵒᵖ)
+      refine Iff.mpr (AddMonoidHom.map_mul_iff (R := k[G]ᵐᵒᵖ)
         (S := AddMonoidAlgebra kᵐᵒᵖ G) _) ?_
       -- Porting note: Was `ext`.
       refine AddMonoidHom.mul_op_ext _ _ <| addHom_ext' fun i₁ => AddMonoidHom.ext fun r₁ =>
@@ -1857,7 +1868,7 @@ protected noncomputable def opRingEquiv [AddCommMonoid G] :
       -- Porting note: `reducible` cannot be `local` so proof gets long.
       dsimp
       rw [AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply,
-        MulOpposite.opAddEquiv_symm_apply, MulOpposite.unop_mul (α := AddMonoidAlgebra k G)]
+        MulOpposite.opAddEquiv_symm_apply, MulOpposite.unop_mul (α := k[G])]
       dsimp
       simp only [mapRange_single, single_mul_single, ← op_mul, add_comm] }
 #align add_monoid_algebra.op_ring_equiv AddMonoidAlgebra.opRingEquiv
@@ -1876,12 +1887,12 @@ theorem opRingEquiv_symm_single [AddCommMonoid G] (r : kᵐᵒᵖ) (x : Gᵐᵒ
 
 end Opposite
 
-/-- The instance `Algebra R (AddMonoidAlgebra k G)` whenever we have `Algebra R k`.
+/-- The instance `Algebra R k[G]` whenever we have `Algebra R k`.
 
-In particular this provides the instance `Algebra k (AddMonoidAlgebra k G)`.
+In particular this provides the instance `Algebra k k[G]`.
 -/
 instance algebra [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
-    Algebra R (AddMonoidAlgebra k G) :=
+    Algebra R k[G] :=
   { singleZeroRingHom.comp (algebraMap R k) with
     -- Porting note: `ext` → `refine Finsupp.ext fun _ => ?_`
     smul_def' := fun r a => by
@@ -1897,7 +1908,7 @@ instance algebra [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
 /-- `Finsupp.single 0` as an `AlgHom` -/
 @[simps! apply]
 def singleZeroAlgHom [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
-    k →ₐ[R] AddMonoidAlgebra k G :=
+    k →ₐ[R] k[G] :=
   { singleZeroRingHom with
     commutes' := fun r => by
       -- Porting note: `ext` → `refine Finsupp.ext fun _ => ?_`
@@ -1909,7 +1920,7 @@ def singleZeroAlgHom [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
 
 @[simp]
 theorem coe_algebraMap [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
-    (algebraMap R (AddMonoidAlgebra k G) : R → AddMonoidAlgebra k G) = single 0 ∘ algebraMap R k :=
+    (algebraMap R k[G] : R → k[G]) = single 0 ∘ algebraMap R k :=
   rfl
 #align add_monoid_algebra.coe_algebra_map AddMonoidAlgebra.coe_algebraMap
 
@@ -1923,24 +1934,24 @@ variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type*} [Semiring B] [Al
 
 /-- `liftNCRingHom` as an `AlgHom`, for when `f` is an `AlgHom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : Multiplicative G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
-    AddMonoidAlgebra A G →ₐ[k] B :=
+    A[G] →ₐ[k] B :=
   { liftNCRingHom (f : A →+* B) g h_comm with
     commutes' := by simp [liftNCRingHom] }
 #align add_monoid_algebra.lift_nc_alg_hom AddMonoidAlgebra.liftNCAlgHom
 
 /-- A `k`-algebra homomorphism from `MonoidAlgebra k G` is uniquely defined by its
 values on the functions `single a 1`. -/
-theorem algHom_ext ⦃φ₁ φ₂ : AddMonoidAlgebra k G →ₐ[k] A⦄
+theorem algHom_ext ⦃φ₁ φ₂ : k[G] →ₐ[k] A⦄
     (h : ∀ x, φ₁ (single x 1) = φ₂ (single x 1)) : φ₁ = φ₂ :=
   @MonoidAlgebra.algHom_ext k (Multiplicative G) _ _ _ _ _ _ _ h
 #align add_monoid_algebra.alg_hom_ext AddMonoidAlgebra.algHom_ext
 
 /-- See note [partially-applied ext lemmas]. -/
 @[ext high]
-theorem algHom_ext' ⦃φ₁ φ₂ : AddMonoidAlgebra k G →ₐ[k] A⦄
+theorem algHom_ext' ⦃φ₁ φ₂ : k[G] →ₐ[k] A⦄
     (h :
-      (φ₁ : AddMonoidAlgebra k G →* A).comp (of k G) =
-        (φ₂ : AddMonoidAlgebra k G →* A).comp (of k G)) :
+      (φ₁ : k[G] →* A).comp (of k G) =
+        (φ₂ : k[G] →* A).comp (of k G)) :
     φ₁ = φ₂ :=
   algHom_ext <| FunLike.congr_fun h
 #align add_monoid_algebra.alg_hom_ext' AddMonoidAlgebra.algHom_ext'
@@ -1949,9 +1960,9 @@ variable (k G A)
 
 /-- Any monoid homomorphism `G →* A` can be lifted to an algebra homomorphism
 `MonoidAlgebra k G →ₐ[k] A`. -/
-def lift : (Multiplicative G →* A) ≃ (AddMonoidAlgebra k G →ₐ[k] A) :=
+def lift : (Multiplicative G →* A) ≃ (k[G] →ₐ[k] A) :=
   { @MonoidAlgebra.lift k (Multiplicative G) _ _ A _ _ with
-    invFun := fun f => (f : AddMonoidAlgebra k G →* A).comp (of k G)
+    invFun := fun f => (f : k[G] →* A).comp (of k G)
     toFun := fun F =>
       { @MonoidAlgebra.lift k (Multiplicative G) _ _ A _ _ F with
         toFun := liftNCAlgHom (Algebra.ofId k A) F fun _ _ => Algebra.commutes _ _ } }
@@ -1975,7 +1986,7 @@ theorem lift_def (F : Multiplicative G →* A) :
 #align add_monoid_algebra.lift_def AddMonoidAlgebra.lift_def
 
 @[simp]
-theorem lift_symm_apply (F : AddMonoidAlgebra k G →ₐ[k] A) (x : Multiplicative G) :
+theorem lift_symm_apply (F : k[G] →ₐ[k] A) (x : Multiplicative G) :
     (lift k G A).symm F x = F (single (Multiplicative.toAdd x) 1) :=
   rfl
 #align add_monoid_algebra.lift_symm_apply AddMonoidAlgebra.lift_symm_apply
@@ -1990,21 +2001,21 @@ theorem lift_single (F : Multiplicative G →* A) (a b) :
   rw [lift_def, liftNC_single, Algebra.smul_def, AddMonoidHom.coe_coe]
 #align add_monoid_algebra.lift_single AddMonoidAlgebra.lift_single
 
-theorem lift_unique' (F : AddMonoidAlgebra k G →ₐ[k] A) :
-    F = lift k G A ((F : AddMonoidAlgebra k G →* A).comp (of k G)) :=
+theorem lift_unique' (F : k[G] →ₐ[k] A) :
+    F = lift k G A ((F : k[G] →* A).comp (of k G)) :=
   ((lift k G A).apply_symm_apply F).symm
 #align add_monoid_algebra.lift_unique' AddMonoidAlgebra.lift_unique'
 
 /-- Decomposition of a `k`-algebra homomorphism from `MonoidAlgebra k G` by
 its values on `F (single a 1)`. -/
-theorem lift_unique (F : AddMonoidAlgebra k G →ₐ[k] A) (f : MonoidAlgebra k G) :
+theorem lift_unique (F : k[G] →ₐ[k] A) (f : MonoidAlgebra k G) :
     F f = f.sum fun a b => b • F (single a 1) := by
   conv_lhs =>
     rw [lift_unique' F]
     simp [lift_apply]
 #align add_monoid_algebra.lift_unique AddMonoidAlgebra.lift_unique
 
-theorem algHom_ext_iff {φ₁ φ₂ : AddMonoidAlgebra k G →ₐ[k] A} :
+theorem algHom_ext_iff {φ₁ φ₂ : k[G] →ₐ[k] A} :
     (∀ x, φ₁ (Finsupp.single x 1) = φ₂ (Finsupp.single x 1)) ↔ φ₁ = φ₂ :=
   ⟨fun h => algHom_ext h, by rintro rfl _; rfl⟩
 #align add_monoid_algebra.alg_hom_ext_iff AddMonoidAlgebra.algHom_ext_iff
@@ -2029,7 +2040,7 @@ end
 
 theorem mapDomain_algebraMap (A : Type*) {H F : Type*} [CommSemiring k] [Semiring A] [Algebra k A]
     [AddMonoid G] [AddMonoid H] [AddMonoidHomClass F G H] (f : F) (r : k) :
-    mapDomain f (algebraMap k (AddMonoidAlgebra A G) r) = algebraMap k (AddMonoidAlgebra A H) r :=
+    mapDomain f (algebraMap k A[G] r) = algebraMap k A[H] r :=
   by simp only [Function.comp_apply, mapDomain_single, AddMonoidAlgebra.coe_algebraMap, map_zero]
 #align add_monoid_algebra.map_domain_algebra_map AddMonoidAlgebra.mapDomain_algebraMap
 
@@ -2038,7 +2049,7 @@ non-unital algebra homomorphism between their additive magma algebras. -/
 @[simps apply]
 def mapDomainNonUnitalAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebra k A]
     {G H F : Type*} [Add G] [Add H] [AddHomClass F G H] (f : F) :
-    AddMonoidAlgebra A G →ₙₐ[k] AddMonoidAlgebra A H :=
+    A[G] →ₙₐ[k] A[H] :=
   { (Finsupp.mapDomain.addMonoidHom f : MonoidAlgebra A G →+ MonoidAlgebra A H) with
     map_mul' := fun x y => mapDomain_mul f x y
     map_smul' := fun r x => mapDomain_smul r x }
@@ -2050,7 +2061,7 @@ def mapDomainNonUnitalAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebr
 @[simps!]
 def mapDomainAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebra k A] [AddMonoid G]
     {H F : Type*} [AddMonoid H] [AddMonoidHomClass F G H] (f : F) :
-    AddMonoidAlgebra A G →ₐ[k] AddMonoidAlgebra A H :=
+    A[G] →ₐ[k] A[H] :=
   { mapDomainRingHom A f with commutes' := mapDomain_algebraMap A f }
 #align add_monoid_algebra.map_domain_alg_hom AddMonoidAlgebra.mapDomainAlgHom
 #align add_monoid_algebra.map_domain_alg_hom_apply AddMonoidAlgebra.mapDomainAlgHom_apply
@@ -2062,7 +2073,7 @@ variable [CommSemiring k] [AddMonoid G] [AddMonoid H] [Semiring A] [Algebra k A]
 
 /-- If `e : G ≃* H` is a multiplicative equivalence between two monoids, then
 `MonoidAlgebra.domCongr e` is an algebra equivalence between their monoid algebras. -/
-def domCongr (e : G ≃+ H) : AddMonoidAlgebra A G ≃ₐ[k] AddMonoidAlgebra A H :=
+def domCongr (e : G ≃+ H) : A[G] ≃ₐ[k] A[H] :=
   AlgEquiv.ofLinearEquiv
     (Finsupp.domLCongr e : (G →₀ A) ≃ₗ[k] (H →₀ A))
     (fun f g => (equivMapDomain_eq_mapDomain _ _).trans <| (mapDomain_mul e f g).trans <|
docs(Algebra/MonoidAlgebra/Basic): fix order of arguments in docs (#7202)

The arguments to AddMonoidAlgebra were reversed with respect to normal use in the module docs. They also used α instead of R. For reference, these are the actual definitions:

-- Data/MvPolynomial/Basic
def MvPolynomial (σ : Type*) (R : Type*) [CommSemiring R] :=
  AddMonoidAlgebra R (σ →₀ ℕ)

-- Data/Polynomial/Basic
structure Polynomial (R : Type*) [Semiring R] where ofFinsupp ::
  toFinsupp : AddMonoidAlgebra R ℕ
Diff
@@ -30,8 +30,8 @@ in the same way, and then define the convolution product on these.
 
 When the domain is additive, this is used to define polynomials:
 ```
-Polynomial α := AddMonoidAlgebra ℕ α
-MvPolynomial σ α := AddMonoidAlgebra (σ →₀ ℕ) α
+Polynomial R := AddMonoidAlgebra R ℕ
+MvPolynomial σ α := AddMonoidAlgebra R (σ →₀ ℕ)
 ```
 
 When the domain is multiplicative, e.g. a group, this will be used to define the group ring.
perf: remove overspecified fields (#6965)

This removes redundant field values of the form add := add for smaller terms and less unfolding during unification.

A list of all files containing a structure instance of the form { a1, ... with x1 := val, ... } where some xi is a field of some aj was generated by modifying the structure instance elaboration algorithm to print such overlaps to stdout in a custom toolchain.

Using that toolchain, I went through each file on the list and attempted to remove algebraic fields that overlapped and were redundant, eg add := add and not toFun (though some other ones did creep in). If things broke (which was the case in a couple of cases), I did not push further and reverted.

It is possible that pushing harder and trying to remove all redundant overlaps will yield further improvements.

Diff
@@ -169,9 +169,6 @@ theorem mul_def {f g : MonoidAlgebra k G} :
 
 instance nonUnitalNonAssocSemiring : NonUnitalNonAssocSemiring (MonoidAlgebra k G) :=
   { Finsupp.addCommMonoid with
-    zero := 0
-    mul := (· * ·)
-    add := (· + ·)
     -- Porting note: `refine` & `exact` are required because `simp` behaves differently.
     left_distrib := fun f g h => by
       haveI := Classical.decEq G
@@ -211,9 +208,6 @@ variable [Semiring k] [Semigroup G] [Semiring R]
 
 instance nonUnitalSemiring : NonUnitalSemiring (MonoidAlgebra k G) :=
   { MonoidAlgebra.nonUnitalNonAssocSemiring with
-    zero := 0
-    mul := (· * ·)
-    add := (· + ·)
     mul_assoc := fun f g h => by
       -- Porting note: `reducible` cannot be `local` so proof gets long.
       simp only [mul_def]
@@ -254,10 +248,6 @@ variable [Semiring k] [MulOneClass G]
 
 instance nonAssocSemiring : NonAssocSemiring (MonoidAlgebra k G) :=
   { MonoidAlgebra.nonUnitalNonAssocSemiring with
-    one := 1
-    mul := (· * ·)
-    zero := 0
-    add := (· + ·)
     natCast := fun n => single 1 n
     natCast_zero := by simp
     natCast_succ := fun _ => by simp; rfl
@@ -284,11 +274,7 @@ variable [Semiring k] [Monoid G]
 
 instance semiring : Semiring (MonoidAlgebra k G) :=
   { MonoidAlgebra.nonUnitalSemiring,
-    MonoidAlgebra.nonAssocSemiring with
-    one := 1
-    mul := (· * ·)
-    zero := 0
-    add := (· + ·) }
+    MonoidAlgebra.nonAssocSemiring with }
 #align monoid_algebra.semiring MonoidAlgebra.semiring
 
 variable [Semiring R]
@@ -297,7 +283,6 @@ variable [Semiring R]
 def liftNCRingHom (f : k →+* R) (g : G →* R) (h_comm : ∀ x y, Commute (f x) (g y)) :
     MonoidAlgebra k G →+* R :=
   { liftNC (f : k →+ R) g with
-    toFun := liftNC (f : k →+ R) g
     map_one' := liftNC_one _ _
     map_mul' := fun _a _b => liftNC_mul _ _ _ _ fun {_ _} _ => h_comm _ _ }
 #align monoid_algebra.lift_nc_ring_hom MonoidAlgebra.liftNCRingHom
@@ -855,7 +840,6 @@ variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type*} [Semiring B] [Al
 def liftNCAlgHom (f : A →ₐ[k] B) (g : G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
     MonoidAlgebra A G →ₐ[k] B :=
   { liftNCRingHom (f : A →+* B) g h_comm with
-    toFun := liftNCRingHom (f : A →+* B) g h_comm
     commutes' := by simp [liftNCRingHom] }
 #align monoid_algebra.lift_nc_alg_hom MonoidAlgebra.liftNCAlgHom
 
@@ -1131,7 +1115,7 @@ protected noncomputable def opRingEquiv [Monoid G] :
       -- Porting note: `reducible` cannot be `local` so proof gets long.
       simp
       rw [AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply,
-        AddEquiv.trans_apply, AddEquiv.trans_apply, MulOpposite.opAddEquiv_apply,
+        AddEquiv.trans_apply, AddEquiv.trans_apply,
         MulOpposite.opAddEquiv_symm_apply, MulOpposite.unop_mul (α := MonoidAlgebra k G)]
       simp }
 #align monoid_algebra.op_ring_equiv MonoidAlgebra.opRingEquiv
@@ -1289,9 +1273,6 @@ theorem mul_def {f g : AddMonoidAlgebra k G} :
 
 instance nonUnitalNonAssocSemiring : NonUnitalNonAssocSemiring (AddMonoidAlgebra k G) :=
   { Finsupp.addCommMonoid with
-    zero := 0
-    mul := (· * ·)
-    add := (· + ·)
     -- Porting note: `refine` & `exact` are required because `simp` behaves differently.
     left_distrib := fun f g h => by
       haveI := Classical.decEq G
@@ -1362,9 +1343,6 @@ variable [Semiring k] [AddSemigroup G]
 
 instance nonUnitalSemiring : NonUnitalSemiring (AddMonoidAlgebra k G) :=
   { AddMonoidAlgebra.nonUnitalNonAssocSemiring with
-    zero := 0
-    mul := (· * ·)
-    add := (· + ·)
     mul_assoc := fun f g h => by
       -- Porting note: `reducible` cannot be `local` so proof gets long.
       simp only [mul_def]
@@ -1384,10 +1362,6 @@ variable [Semiring k] [AddZeroClass G]
 
 instance nonAssocSemiring : NonAssocSemiring (AddMonoidAlgebra k G) :=
   { AddMonoidAlgebra.nonUnitalNonAssocSemiring with
-    one := 1
-    mul := (· * ·)
-    zero := 0
-    add := (· + ·)
     natCast := fun n => single 0 n
     natCast_zero := by simp
     natCast_succ := fun _ => by simp; rfl
@@ -1418,11 +1392,7 @@ variable [Semiring k] [AddMonoid G]
 
 instance semiring : Semiring (AddMonoidAlgebra k G) :=
   { AddMonoidAlgebra.nonUnitalSemiring,
-    AddMonoidAlgebra.nonAssocSemiring with
-    one := 1
-    mul := (· * ·)
-    zero := 0
-    add := (· + ·) }
+    AddMonoidAlgebra.nonAssocSemiring with }
 #align add_monoid_algebra.semiring AddMonoidAlgebra.semiring
 
 variable [Semiring R]
@@ -1431,7 +1401,6 @@ variable [Semiring R]
 def liftNCRingHom (f : k →+* R) (g : Multiplicative G →* R) (h_comm : ∀ x y, Commute (f x) (g y)) :
     AddMonoidAlgebra k G →+* R :=
   { liftNC (f : k →+ R) g with
-    toFun := liftNC (f : k →+ R) g
     map_one' := liftNC_one _ _
     map_mul' := fun _a _b => liftNC_mul _ _ _ _ fun {_ _} _ => h_comm _ _ }
 #align add_monoid_algebra.lift_nc_ring_hom AddMonoidAlgebra.liftNCRingHom
@@ -1888,8 +1857,7 @@ protected noncomputable def opRingEquiv [AddCommMonoid G] :
       -- Porting note: `reducible` cannot be `local` so proof gets long.
       dsimp
       rw [AddEquiv.trans_apply, AddEquiv.trans_apply, AddEquiv.trans_apply,
-        MulOpposite.opAddEquiv_apply, MulOpposite.opAddEquiv_symm_apply,
-        MulOpposite.unop_mul (α := AddMonoidAlgebra k G)]
+        MulOpposite.opAddEquiv_symm_apply, MulOpposite.unop_mul (α := AddMonoidAlgebra k G)]
       dsimp
       simp only [mapRange_single, single_mul_single, ← op_mul, add_comm] }
 #align add_monoid_algebra.op_ring_equiv AddMonoidAlgebra.opRingEquiv
@@ -1956,10 +1924,7 @@ variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type*} [Semiring B] [Al
 /-- `liftNCRingHom` as an `AlgHom`, for when `f` is an `AlgHom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : Multiplicative G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
     AddMonoidAlgebra A G →ₐ[k] B :=
-  {
-    liftNCRingHom (f : A →+* B) g
-      h_comm with
-    toFun := liftNCRingHom (f : A →+* B) g h_comm
+  { liftNCRingHom (f : A →+* B) g h_comm with
     commutes' := by simp [liftNCRingHom] }
 #align add_monoid_algebra.lift_nc_alg_hom AddMonoidAlgebra.liftNCAlgHom
 
chore: drop MulZeroClass. in mul_zero/zero_mul (#6682)

Search&replace MulZeroClass.mul_zero -> mul_zero, MulZeroClass.zero_mul -> zero_mul.

These were introduced by Mathport, as the full name of mul_zero is actually MulZeroClass.mul_zero (it's exported with the short name).

Diff
@@ -562,7 +562,7 @@ theorem mul_single_apply_of_not_exists_mul [Mul G] (r : k) {g g' : G} (x : Monoi
   classical
     rw [mul_apply, Finsupp.sum_comm, Finsupp.sum_single_index]
     swap
-    · simp_rw [Finsupp.sum, MulZeroClass.mul_zero, ite_self, Finset.sum_const_zero]
+    · simp_rw [Finsupp.sum, mul_zero, ite_self, Finset.sum_const_zero]
     · apply Finset.sum_eq_zero
       simp_rw [ite_eq_right_iff]
       rintro g'' _hg'' rfl
@@ -593,7 +593,7 @@ theorem single_mul_apply_of_not_exists_mul [Mul G] (r : k) {g g' : G} (x : Monoi
   classical
     rw [mul_apply, Finsupp.sum_single_index]
     swap
-    · simp_rw [Finsupp.sum, MulZeroClass.zero_mul, ite_self, Finset.sum_const_zero]
+    · simp_rw [Finsupp.sum, zero_mul, ite_self, Finset.sum_const_zero]
     · apply Finset.sum_eq_zero
       simp_rw [ite_eq_right_iff]
       rintro g'' _hg'' rfl
fix: disable autoImplicit globally (#6528)

Autoimplicits are highly controversial and also defeat the performance-improving work in #6474.

The intent of this PR is to make autoImplicit opt-in on a per-file basis, by disabling it in the lakefile and enabling it again with set_option autoImplicit true in the few files that rely on it.

That also keeps this PR small, as opposed to attempting to "fix" files to not need it any more.

I claim that many of the uses of autoImplicit in these files are accidental; situations such as:

  • Assuming variables are in scope, but pasting the lemma in the wrong section
  • Pasting in a lemma from a scratch file without checking to see if the variable names are consistent with the rest of the file
  • Making a copy-paste error between lemmas and forgetting to add an explicit arguments.

Having set_option autoImplicit false as the default prevents these types of mistake being made in the 90% of files where autoImplicits are not used at all, and causes them to be caught by CI during review.

I think there were various points during the port where we encouraged porters to delete the universes u v lines; I think having autoparams for universe variables only would cover a lot of the cases we actually use them, while avoiding any real shortcomings.

A Zulip poll (after combining overlapping votes accordingly) was in favor of this change with 5:5:18 as the no:dontcare:yes vote ratio.

While this PR was being reviewed, a handful of files gained some more likely-accidental autoImplicits. In these places, set_option autoImplicit true has been placed locally within a section, rather than at the top of the file.

Diff
@@ -46,6 +46,8 @@ Similarly, I attempted to just define
 `Multiplicative G = G` leaks through everywhere, and seems impossible to use.
 -/
 
+set_option autoImplicit true
+
 
 noncomputable section
 
feat(Algebra/MonoidAlgebra/Basic): add domCongr (#6567)

This is the AlgEquiv version of Finsupp.domLCongr.

MvPolynomial.renameEquiv is a special case of this, but it's probably not worth changing the defeqs to redefine it that way.

Diff
@@ -57,7 +57,7 @@ open Finsupp hiding single mapDomain
 
 universe u₁ u₂ u₃ u₄
 
-variable (k : Type u₁) (G : Type u₂) {R : Type*}
+variable (k : Type u₁) (G : Type u₂) (H : Type*) {R : Type*}
 
 /-! ### Multiplicative monoids -/
 
@@ -845,7 +845,7 @@ end Algebra
 
 section lift
 
-variable [CommSemiring k] [Monoid G]
+variable [CommSemiring k] [Monoid G] [Monoid H]
 
 variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type*} [Semiring B] [Algebra k B]
 
@@ -889,7 +889,7 @@ def lift : (G →* A) ≃ (MonoidAlgebra k G →ₐ[k] A) where
     simp [liftNCAlgHom, liftNCRingHom]
 #align monoid_algebra.lift MonoidAlgebra.lift
 
-variable {k G A}
+variable {k G H A}
 
 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 :=
@@ -945,8 +945,8 @@ def mapDomainNonUnitalAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebr
 #align monoid_algebra.map_domain_non_unital_alg_hom MonoidAlgebra.mapDomainNonUnitalAlgHom
 #align monoid_algebra.map_domain_non_unital_alg_hom_apply MonoidAlgebra.mapDomainNonUnitalAlgHom_apply
 
-theorem mapDomain_algebraMap (k A : Type*) {H F : Type*} [CommSemiring k] [Semiring A]
-    [Algebra k A] [Monoid H] [MonoidHomClass F G H] (f : F) (r : k) :
+variable (A) in
+theorem mapDomain_algebraMap {F : Type*} [MonoidHomClass F G H] (f : F) (r : k) :
     mapDomain f (algebraMap k (MonoidAlgebra A G) r) = algebraMap k (MonoidAlgebra A H) r := by
   simp only [coe_algebraMap, mapDomain_single, map_one, (· ∘ ·)]
 #align monoid_algebra.map_domain_algebra_map MonoidAlgebra.mapDomain_algebraMap
@@ -956,10 +956,41 @@ theorem mapDomain_algebraMap (k A : Type*) {H F : Type*} [CommSemiring k] [Semir
 @[simps!]
 def mapDomainAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebra k A] {H F : Type*}
     [Monoid H] [MonoidHomClass F G H] (f : F) : MonoidAlgebra A G →ₐ[k] MonoidAlgebra A H :=
-  { mapDomainRingHom A f with commutes' := mapDomain_algebraMap k A f }
+  { mapDomainRingHom A f with commutes' := mapDomain_algebraMap A f }
 #align monoid_algebra.map_domain_alg_hom MonoidAlgebra.mapDomainAlgHom
 #align monoid_algebra.map_domain_alg_hom_apply MonoidAlgebra.mapDomainAlgHom_apply
 
+variable (k A)
+
+/-- If `e : G ≃* H` is a multiplicative equivalence between two monoids, then
+`MonoidAlgebra.domCongr e` is an algebra equivalence between their monoid algebras. -/
+def domCongr (e : G ≃* H) : MonoidAlgebra A G ≃ₐ[k] MonoidAlgebra A H :=
+  AlgEquiv.ofLinearEquiv
+    (Finsupp.domLCongr e : (G →₀ A) ≃ₗ[k] (H →₀ A))
+    (fun f g => (equivMapDomain_eq_mapDomain _ _).trans <| (mapDomain_mul e f g).trans <|
+        congr_arg₂ _ (equivMapDomain_eq_mapDomain _ _).symm (equivMapDomain_eq_mapDomain _ _).symm)
+    (fun r => (equivMapDomain_eq_mapDomain _ _).trans <| mapDomain_algebraMap A e r)
+
+theorem domCongr_toAlgHom (e : G ≃* H) : (domCongr k A e).toAlgHom = mapDomainAlgHom k A e :=
+  AlgHom.ext <| fun _ => equivMapDomain_eq_mapDomain _ _
+
+@[simp] theorem domCongr_apply (e : G ≃* H) (f : MonoidAlgebra A G) (h : H) :
+    domCongr k A e f h = f (e.symm h) :=
+  rfl
+
+@[simp] theorem domCongr_support (e : G ≃* H) (f : MonoidAlgebra A G) :
+    (domCongr k A e f).support = f.support.map e :=
+  rfl
+
+@[simp] theorem domCongr_single (e : G ≃* H) (g : G) (a : A) :
+    domCongr k A e (single g a) = single (e g) a :=
+  Finsupp.equivMapDomain_single _ _ _
+
+@[simp] theorem domCongr_refl : domCongr k A (MulEquiv.refl G) = AlgEquiv.refl :=
+  AlgEquiv.ext fun _ => Finsupp.ext fun _ => rfl
+
+@[simp] theorem domCongr_symm (e : G ≃* H) : (domCongr k A e).symm = domCongr k A e.symm := rfl
+
 end lift
 
 section
@@ -1732,7 +1763,7 @@ protected def MonoidAlgebra.toAdditive [Semiring k] [Mul G] :
 
 namespace AddMonoidAlgebra
 
-variable {k G}
+variable {k G H}
 
 /-! #### Non-unital, non-associative algebra structure -/
 
@@ -2029,7 +2060,7 @@ theorem prod_single [CommSemiring k] [AddCommMonoid G] {s : Finset ι} {a : ι 
 
 end
 
-theorem mapDomain_algebraMap {A H F : Type*} [CommSemiring k] [Semiring A] [Algebra k A]
+theorem mapDomain_algebraMap (A : Type*) {H F : Type*} [CommSemiring k] [Semiring A] [Algebra k A]
     [AddMonoid G] [AddMonoid H] [AddMonoidHomClass F G H] (f : F) (r : k) :
     mapDomain f (algebraMap k (AddMonoidAlgebra A G) r) = algebraMap k (AddMonoidAlgebra A H) r :=
   by simp only [Function.comp_apply, mapDomain_single, AddMonoidAlgebra.coe_algebraMap, map_zero]
@@ -2053,10 +2084,44 @@ def mapDomainNonUnitalAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebr
 def mapDomainAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebra k A] [AddMonoid G]
     {H F : Type*} [AddMonoid H] [AddMonoidHomClass F G H] (f : F) :
     AddMonoidAlgebra A G →ₐ[k] AddMonoidAlgebra A H :=
-  { mapDomainRingHom A f with commutes' := mapDomain_algebraMap f }
+  { mapDomainRingHom A f with commutes' := mapDomain_algebraMap A f }
 #align add_monoid_algebra.map_domain_alg_hom AddMonoidAlgebra.mapDomainAlgHom
 #align add_monoid_algebra.map_domain_alg_hom_apply AddMonoidAlgebra.mapDomainAlgHom_apply
 
+variable (k A)
+
+variable [CommSemiring k] [AddMonoid G] [AddMonoid H] [Semiring A] [Algebra k A]
+
+
+/-- If `e : G ≃* H` is a multiplicative equivalence between two monoids, then
+`MonoidAlgebra.domCongr e` is an algebra equivalence between their monoid algebras. -/
+def domCongr (e : G ≃+ H) : AddMonoidAlgebra A G ≃ₐ[k] AddMonoidAlgebra A H :=
+  AlgEquiv.ofLinearEquiv
+    (Finsupp.domLCongr e : (G →₀ A) ≃ₗ[k] (H →₀ A))
+    (fun f g => (equivMapDomain_eq_mapDomain _ _).trans <| (mapDomain_mul e f g).trans <|
+        congr_arg₂ _ (equivMapDomain_eq_mapDomain _ _).symm (equivMapDomain_eq_mapDomain _ _).symm)
+    (fun r => (equivMapDomain_eq_mapDomain _ _).trans <| mapDomain_algebraMap A e r)
+
+theorem domCongr_toAlgHom (e : G ≃+ H) : (domCongr k A e).toAlgHom = mapDomainAlgHom k A e :=
+  AlgHom.ext <| fun _ => equivMapDomain_eq_mapDomain _ _
+
+@[simp] theorem domCongr_apply (e : G ≃+ H) (f : MonoidAlgebra A G) (h : H) :
+    domCongr k A e f h = f (e.symm h) :=
+  rfl
+
+@[simp] theorem domCongr_support (e : G ≃+ H) (f : MonoidAlgebra A G) :
+    (domCongr k A e f).support = f.support.map e :=
+  rfl
+
+@[simp] theorem domCongr_single (e : G ≃+ H) (g : G) (a : A) :
+    domCongr k A e (single g a) = single (e g) a :=
+  Finsupp.equivMapDomain_single _ _ _
+
+@[simp] theorem domCongr_refl : domCongr k A (AddEquiv.refl G) = AlgEquiv.refl :=
+  AlgEquiv.ext fun _ => Finsupp.ext fun _ => rfl
+
+@[simp] theorem domCongr_symm (e : G ≃+ H) : (domCongr k A e).symm = domCongr k A e.symm := rfl
+
 end AddMonoidAlgebra
 
 variable [CommSemiring R]
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -57,7 +57,7 @@ open Finsupp hiding single mapDomain
 
 universe u₁ u₂ u₃ u₄
 
-variable (k : Type u₁) (G : Type u₂) {R : Type _}
+variable (k : Type u₁) (G : Type u₂) {R : Type*}
 
 /-! ### Multiplicative monoids -/
 
@@ -123,10 +123,10 @@ theorem single_apply {a a' : G} {b : k} [Decidable (a = a')] :
 @[simp]
 theorem single_eq_zero {a : G} {b : k} : single a b = 0 ↔ b = 0 := Finsupp.single_eq_zero
 
-abbrev mapDomain {G' : Type _} (f : G → G') (v : MonoidAlgebra k G) : MonoidAlgebra k G' :=
+abbrev mapDomain {G' : Type*} (f : G → G') (v : MonoidAlgebra k G) : MonoidAlgebra k G' :=
   Finsupp.mapDomain f v
 
-theorem mapDomain_sum {k' G' : Type _} [Semiring k'] {f : G → G'} {s : MonoidAlgebra k' G}
+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) :=
   Finsupp.mapDomain_sum
@@ -191,7 +191,7 @@ instance nonUnitalNonAssocSemiring : NonUnitalNonAssocSemiring (MonoidAlgebra k
 
 variable [Semiring R]
 
-theorem liftNC_mul {g_hom : Type _} [MulHomClass g_hom G R] (f : k →+* R) (g : g_hom)
+theorem liftNC_mul {g_hom : Type*} [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 := by
   conv_rhs => rw [← sum_single a, ← sum_single b]
@@ -240,7 +240,7 @@ theorem one_def : (1 : MonoidAlgebra k G) = single 1 1 :=
 #align monoid_algebra.one_def MonoidAlgebra.one_def
 
 @[simp]
-theorem liftNC_one {g_hom : Type _} [OneHomClass g_hom G R] (f : k →+* R) (g : g_hom) :
+theorem liftNC_one {g_hom : Type*} [OneHomClass g_hom G R] (f : k →+* R) (g : g_hom) :
     liftNC (f : k →+ R) g 1 = 1 := by simp [one_def]
 #align monoid_algebra.lift_nc_one MonoidAlgebra.liftNC_one
 
@@ -367,7 +367,7 @@ instance commRing [CommRing k] [CommMonoid G] : CommRing (MonoidAlgebra k G) :=
   { MonoidAlgebra.nonUnitalCommRing, MonoidAlgebra.ring with }
 #align monoid_algebra.comm_ring MonoidAlgebra.commRing
 
-variable {S : Type _}
+variable {S : Type*}
 
 instance smulZeroClass [Semiring k] [SMulZeroClass R k] : SMulZeroClass R (MonoidAlgebra k G) :=
   Finsupp.smulZeroClass
@@ -470,15 +470,15 @@ section
 
 /-- Like `Finsupp.mapDomain_zero`, but for the `1` we define in this file -/
 @[simp]
-theorem mapDomain_one {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [One α] [One α₂]
-    {F : Type _} [OneHomClass F α α₂] (f : F) :
+theorem mapDomain_one {α : Type*} {β : Type*} {α₂ : Type*} [Semiring β] [One α] [One α₂]
+    {F : Type*} [OneHomClass F α α₂] (f : F) :
     (mapDomain f (1 : MonoidAlgebra β α) : MonoidAlgebra β α₂) = (1 : MonoidAlgebra β α₂) := by
   simp_rw [one_def, mapDomain_single, map_one]
 #align monoid_algebra.map_domain_one MonoidAlgebra.mapDomain_one
 
 /-- Like `Finsupp.mapDomain_add`, but for the convolutive multiplication we define in this file -/
-theorem mapDomain_mul {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [Mul α] [Mul α₂]
-    {F : Type _} [MulHomClass F α α₂] (f : F) (x y : MonoidAlgebra β α) :
+theorem mapDomain_mul {α : Type*} {β : Type*} {α₂ : Type*} [Semiring β] [Mul α] [Mul α₂]
+    {F : Type*} [MulHomClass F α α₂] (f : F) (x y : MonoidAlgebra β α) :
     mapDomain f (x * y) = mapDomain f x * mapDomain f y := by
   simp_rw [mul_def, mapDomain_sum, mapDomain_single, map_mul]
   rw [Finsupp.sum_mapDomain_index]
@@ -599,7 +599,7 @@ theorem single_mul_apply_of_not_exists_mul [Mul G] (r : k) {g g' : G} (x : Monoi
       exact h ⟨_, rfl⟩
 #align monoid_algebra.single_mul_apply_of_not_exists_mul MonoidAlgebra.single_mul_apply_of_not_exists_mul
 
-theorem liftNC_smul [MulOneClass G] {R : Type _} [Semiring R] (f : k →+* R) (g : G →* R) (c : k)
+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 φ := by
   suffices :
     (liftNC (↑f) g).comp (smulAddHom k (MonoidAlgebra k G) c) =
@@ -754,7 +754,7 @@ def singleOneRingHom [Semiring k] [MulOneClass G] : k →+* MonoidAlgebra k G :=
 /-- If `f : G → H` is a multiplicative homomorphism between two monoids, then
 `Finsupp.mapDomain f` is a ring homomorphism between their monoid algebras. -/
 @[simps]
-def mapDomainRingHom (k : Type _) {H F : Type _} [Semiring k] [Monoid G] [Monoid H]
+def mapDomainRingHom (k : Type*) {H F : Type*} [Semiring k] [Monoid G] [Monoid H]
     [MonoidHomClass F G H] (f : F) : MonoidAlgebra k G →+* MonoidAlgebra k H :=
   { (Finsupp.mapDomain.addMonoidHom f : MonoidAlgebra k G →+ MonoidAlgebra k H) with
     map_one' := mapDomain_one f
@@ -790,7 +790,7 @@ theorem ringHom_ext' {R} [Semiring k] [MulOneClass G] [Semiring R] {f g : Monoid
 
 In particular this provides the instance `Algebra k (MonoidAlgebra k G)`.
 -/
-instance algebra {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G] :
+instance algebra {A : Type*} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G] :
     Algebra k (MonoidAlgebra A G) :=
   { singleOneRingHom.comp (algebraMap k A) with
     -- Porting note: `ext` → `refine Finsupp.ext fun _ => ?_`
@@ -805,7 +805,7 @@ instance algebra {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Monoi
 
 /-- `Finsupp.single 1` as an `AlgHom` -/
 @[simps! apply]
-def singleOneAlgHom {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G] :
+def singleOneAlgHom {A : Type*} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G] :
     A →ₐ[k] MonoidAlgebra A G :=
   { singleOneRingHom with
     commutes' := fun r => by
@@ -817,7 +817,7 @@ def singleOneAlgHom {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Mo
 #align monoid_algebra.single_one_alg_hom_apply MonoidAlgebra.singleOneAlgHom_apply
 
 @[simp]
-theorem coe_algebraMap {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G] :
+theorem coe_algebraMap {A : Type*} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G] :
     ⇑(algebraMap k (MonoidAlgebra A G)) = single 1 ∘ algebraMap k A :=
   rfl
 #align monoid_algebra.coe_algebra_map MonoidAlgebra.coe_algebraMap
@@ -826,7 +826,7 @@ 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 := by simp
 #align monoid_algebra.single_eq_algebra_map_mul_of MonoidAlgebra.single_eq_algebraMap_mul_of
 
-theorem single_algebraMap_eq_algebraMap_mul_of {A : Type _} [CommSemiring k] [Semiring A]
+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 := by simp
 #align monoid_algebra.single_algebra_map_eq_algebra_map_mul_of MonoidAlgebra.single_algebraMap_eq_algebraMap_mul_of
@@ -847,7 +847,7 @@ section lift
 
 variable [CommSemiring k] [Monoid G]
 
-variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [Algebra k B]
+variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type*} [Semiring B] [Algebra k B]
 
 /-- `liftNCRingHom` as an `AlgHom`, for when `f` is an `AlgHom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
@@ -936,8 +936,8 @@ theorem lift_unique (F : MonoidAlgebra k G →ₐ[k] A) (f : MonoidAlgebra k G)
 /-- If `f : G → H` is a homomorphism between two magmas, then
 `Finsupp.mapDomain f` is a non-unital algebra homomorphism between their magma algebras. -/
 @[simps apply]
-def mapDomainNonUnitalAlgHom (k A : Type _) [CommSemiring k] [Semiring A] [Algebra k A]
-    {G H F : Type _} [Mul G] [Mul H] [MulHomClass F G H] (f : F) :
+def mapDomainNonUnitalAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebra k A]
+    {G H F : Type*} [Mul G] [Mul H] [MulHomClass F G H] (f : F) :
     MonoidAlgebra A G →ₙₐ[k] MonoidAlgebra A H :=
   { (Finsupp.mapDomain.addMonoidHom f : MonoidAlgebra A G →+ MonoidAlgebra A H) with
     map_mul' := fun x y => mapDomain_mul f x y
@@ -945,7 +945,7 @@ def mapDomainNonUnitalAlgHom (k A : Type _) [CommSemiring k] [Semiring A] [Algeb
 #align monoid_algebra.map_domain_non_unital_alg_hom MonoidAlgebra.mapDomainNonUnitalAlgHom
 #align monoid_algebra.map_domain_non_unital_alg_hom_apply MonoidAlgebra.mapDomainNonUnitalAlgHom_apply
 
-theorem mapDomain_algebraMap (k A : Type _) {H F : Type _} [CommSemiring k] [Semiring A]
+theorem mapDomain_algebraMap (k A : Type*) {H F : Type*} [CommSemiring k] [Semiring A]
     [Algebra k A] [Monoid H] [MonoidHomClass F G H] (f : F) (r : k) :
     mapDomain f (algebraMap k (MonoidAlgebra A G) r) = algebraMap k (MonoidAlgebra A H) r := by
   simp only [coe_algebraMap, mapDomain_single, map_one, (· ∘ ·)]
@@ -954,7 +954,7 @@ theorem mapDomain_algebraMap (k A : Type _) {H F : Type _} [CommSemiring k] [Sem
 /-- If `f : G → H` is a multiplicative homomorphism between two monoids, then
 `Finsupp.mapDomain f` is an algebra homomorphism between their monoid algebras. -/
 @[simps!]
-def mapDomainAlgHom (k A : Type _) [CommSemiring k] [Semiring A] [Algebra k A] {H F : Type _}
+def mapDomainAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebra k A] {H F : Type*}
     [Monoid H] [MonoidHomClass F G H] (f : F) : MonoidAlgebra A G →ₐ[k] MonoidAlgebra A H :=
   { mapDomainRingHom A f with commutes' := mapDomain_algebraMap k A f }
 #align monoid_algebra.map_domain_alg_hom MonoidAlgebra.mapDomainAlgHom
@@ -1121,7 +1121,7 @@ section Submodule
 
 variable [CommSemiring k] [Monoid G]
 
-variable {V : Type _} [AddCommMonoid V]
+variable {V : Type*} [AddCommMonoid V]
 
 variable [Module k V] [Module (MonoidAlgebra k G) V] [IsScalarTower k (MonoidAlgebra k G) V]
 
@@ -1207,15 +1207,15 @@ theorem single_apply {a a' : G} {b : k} [Decidable (a = a')] :
 @[simp]
 theorem single_eq_zero {a : G} {b : k} : single a b = 0 ↔ b = 0 := Finsupp.single_eq_zero
 
-abbrev mapDomain {G' : Type _} (f : G → G') (v : AddMonoidAlgebra k G) : AddMonoidAlgebra k G' :=
+abbrev mapDomain {G' : Type*} (f : G → G') (v : AddMonoidAlgebra k G) : AddMonoidAlgebra k G' :=
   Finsupp.mapDomain f v
 
-theorem mapDomain_sum {k' G' : Type _} [Semiring k'] {f : G → G'} {s : AddMonoidAlgebra k' G}
+theorem mapDomain_sum {k' G' : Type*} [Semiring k'] {f : G → G'} {s : AddMonoidAlgebra k' G}
     {v : G → k' → AddMonoidAlgebra k G} :
     mapDomain f (s.sum v) = s.sum fun a b => mapDomain f (v a b) :=
   Finsupp.mapDomain_sum
 
-theorem mapDomain_single {G' : Type _} {f : G → G'} {a : G} {b : k} :
+theorem mapDomain_single {G' : Type*} {f : G → G'} {a : G} {b : k} :
     mapDomain f (single a b) = single (f a) b :=
   Finsupp.mapDomain_single
 
@@ -1292,7 +1292,7 @@ instance nonUnitalNonAssocSemiring : NonUnitalNonAssocSemiring (AddMonoidAlgebra
 
 variable [Semiring R]
 
-theorem liftNC_mul {g_hom : Type _} [MulHomClass g_hom (Multiplicative G) R] (f : k →+* R)
+theorem liftNC_mul {g_hom : Type*} [MulHomClass g_hom (Multiplicative G) R] (f : k →+* R)
     (g : g_hom) (a b : AddMonoidAlgebra 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 :=
@@ -1316,7 +1316,7 @@ theorem one_def : (1 : AddMonoidAlgebra k G) = single 0 1 :=
 #align add_monoid_algebra.one_def AddMonoidAlgebra.one_def
 
 @[simp]
-theorem liftNC_one {g_hom : Type _} [OneHomClass g_hom (Multiplicative G) R] (f : k →+* R)
+theorem liftNC_one {g_hom : Type*} [OneHomClass g_hom (Multiplicative G) R] (f : k →+* R)
     (g : g_hom) : liftNC (f : k →+ R) g 1 = 1 :=
   (MonoidAlgebra.liftNC_one f g : _)
 #align add_monoid_algebra.lift_nc_one AddMonoidAlgebra.liftNC_one
@@ -1467,7 +1467,7 @@ instance commRing [CommRing k] [AddCommMonoid G] : CommRing (AddMonoidAlgebra k
   { AddMonoidAlgebra.nonUnitalCommRing, AddMonoidAlgebra.ring with }
 #align add_monoid_algebra.comm_ring AddMonoidAlgebra.commRing
 
-variable {S : Type _}
+variable {S : Type*}
 
 instance distribSMul [Semiring k] [DistribSMul R k] : DistribSMul R (AddMonoidAlgebra k G) :=
   Finsupp.distribSMul G k
@@ -1540,16 +1540,16 @@ theorem single_pow [AddMonoid G] {a : G} {b : k} : ∀ n : ℕ, single a b ^ n =
 
 /-- Like `Finsupp.mapDomain_zero`, but for the `1` we define in this file -/
 @[simp]
-theorem mapDomain_one {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [Zero α] [Zero α₂]
-    {F : Type _} [ZeroHomClass F α α₂] (f : F) :
+theorem mapDomain_one {α : Type*} {β : Type*} {α₂ : Type*} [Semiring β] [Zero α] [Zero α₂]
+    {F : Type*} [ZeroHomClass F α α₂] (f : F) :
     (mapDomain f (1 : AddMonoidAlgebra β α) : AddMonoidAlgebra β α₂) =
       (1 : AddMonoidAlgebra β α₂) :=
   by simp_rw [one_def, mapDomain_single, map_zero]
 #align add_monoid_algebra.map_domain_one AddMonoidAlgebra.mapDomain_one
 
 /-- Like `Finsupp.mapDomain_add`, but for the convolutive multiplication we define in this file -/
-theorem mapDomain_mul {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β] [Add α] [Add α₂]
-    {F : Type _} [AddHomClass F α α₂] (f : F) (x y : AddMonoidAlgebra β α) :
+theorem mapDomain_mul {α : Type*} {β : Type*} {α₂ : Type*} [Semiring β] [Add α] [Add α₂]
+    {F : Type*} [AddHomClass F α α₂] (f : F) (x y : AddMonoidAlgebra β α) :
     mapDomain f (x * y) = mapDomain f x * mapDomain f y := by
   simp_rw [mul_def, mapDomain_sum, mapDomain_single, map_add]
   rw [Finsupp.sum_mapDomain_index]
@@ -1659,7 +1659,7 @@ theorem single_mul_apply [AddGroup G] (r : k) (x : G) (f : AddMonoidAlgebra k G)
   @MonoidAlgebra.single_mul_apply k (Multiplicative G) _ _ _ _ _ _
 #align add_monoid_algebra.single_mul_apply AddMonoidAlgebra.single_mul_apply
 
-theorem liftNC_smul {R : Type _} [AddZeroClass G] [Semiring R] (f : k →+* R)
+theorem liftNC_smul {R : Type*} [AddZeroClass G] [Semiring R] (f : k →+* R)
     (g : Multiplicative G →* R) (c : k) (φ : MonoidAlgebra k G) :
     liftNC (f : k →+ R) g (c • φ) = f c * liftNC (f : k →+ R) g φ :=
   @MonoidAlgebra.liftNC_smul k (Multiplicative G) _ _ _ _ f g c φ
@@ -1679,7 +1679,7 @@ theorem induction_on [AddMonoid G] {p : AddMonoidAlgebra k G → Prop} (f : AddM
 /-- If `f : G → H` is an additive homomorphism between two additive monoids, then
 `Finsupp.mapDomain f` is a ring homomorphism between their add monoid algebras. -/
 @[simps]
-def mapDomainRingHom (k : Type _) [Semiring k] {H F : Type _} [AddMonoid G] [AddMonoid H]
+def mapDomainRingHom (k : Type*) [Semiring k] {H F : Type*} [AddMonoid G] [AddMonoid H]
     [AddMonoidHomClass F G H] (f : F) : AddMonoidAlgebra k G →+* AddMonoidAlgebra k H :=
   { (Finsupp.mapDomain.addMonoidHom f : MonoidAlgebra k G →+ MonoidAlgebra k H) with
     map_one' := mapDomain_one f
@@ -1918,7 +1918,7 @@ section lift
 
 variable [CommSemiring k] [AddMonoid G]
 
-variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [Algebra k B]
+variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type*} [Semiring B] [Algebra k B]
 
 /-- `liftNCRingHom` as an `AlgHom`, for when `f` is an `AlgHom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : Multiplicative G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
@@ -2029,7 +2029,7 @@ theorem prod_single [CommSemiring k] [AddCommMonoid G] {s : Finset ι} {a : ι 
 
 end
 
-theorem mapDomain_algebraMap {A H F : Type _} [CommSemiring k] [Semiring A] [Algebra k A]
+theorem mapDomain_algebraMap {A H F : Type*} [CommSemiring k] [Semiring A] [Algebra k A]
     [AddMonoid G] [AddMonoid H] [AddMonoidHomClass F G H] (f : F) (r : k) :
     mapDomain f (algebraMap k (AddMonoidAlgebra A G) r) = algebraMap k (AddMonoidAlgebra A H) r :=
   by simp only [Function.comp_apply, mapDomain_single, AddMonoidAlgebra.coe_algebraMap, map_zero]
@@ -2038,8 +2038,8 @@ theorem mapDomain_algebraMap {A H F : Type _} [CommSemiring k] [Semiring A] [Alg
 /-- If `f : G → H` is a homomorphism between two additive magmas, then `Finsupp.mapDomain f` is a
 non-unital algebra homomorphism between their additive magma algebras. -/
 @[simps apply]
-def mapDomainNonUnitalAlgHom (k A : Type _) [CommSemiring k] [Semiring A] [Algebra k A]
-    {G H F : Type _} [Add G] [Add H] [AddHomClass F G H] (f : F) :
+def mapDomainNonUnitalAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebra k A]
+    {G H F : Type*} [Add G] [Add H] [AddHomClass F G H] (f : F) :
     AddMonoidAlgebra A G →ₙₐ[k] AddMonoidAlgebra A H :=
   { (Finsupp.mapDomain.addMonoidHom f : MonoidAlgebra A G →+ MonoidAlgebra A H) with
     map_mul' := fun x y => mapDomain_mul f x y
@@ -2050,8 +2050,8 @@ def mapDomainNonUnitalAlgHom (k A : Type _) [CommSemiring k] [Semiring A] [Algeb
 /-- If `f : G → H` is an additive homomorphism between two additive monoids, then
 `Finsupp.mapDomain f` is an algebra homomorphism between their add monoid algebras. -/
 @[simps!]
-def mapDomainAlgHom (k A : Type _) [CommSemiring k] [Semiring A] [Algebra k A] [AddMonoid G]
-    {H F : Type _} [AddMonoid H] [AddMonoidHomClass F G H] (f : F) :
+def mapDomainAlgHom (k A : Type*) [CommSemiring k] [Semiring A] [Algebra k A] [AddMonoid G]
+    {H F : Type*} [AddMonoid H] [AddMonoidHomClass F G H] (f : F) :
     AddMonoidAlgebra A G →ₐ[k] AddMonoidAlgebra A H :=
   { mapDomainRingHom A f with commutes' := mapDomain_algebraMap f }
 #align add_monoid_algebra.map_domain_alg_hom AddMonoidAlgebra.mapDomainAlgHom
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Yury G. Kudryashov, Scott Morrison
-
-! This file was ported from Lean 3 source module algebra.monoid_algebra.basic
-! leanprover-community/mathlib commit 949dc57e616a621462062668c9f39e4e17b64b69
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.Algebra.Equiv
 import Mathlib.Algebra.BigOperators.Finsupp
@@ -14,6 +9,8 @@ import Mathlib.Algebra.Hom.NonUnitalAlg
 import Mathlib.Algebra.Module.BigOperators
 import Mathlib.LinearAlgebra.Finsupp
 
+#align_import algebra.monoid_algebra.basic from "leanprover-community/mathlib"@"949dc57e616a621462062668c9f39e4e17b64b69"
+
 /-!
 # Monoid algebras
 
chore: correct casing in Logic.Equiv.TransferInstance (#5641)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -642,7 +642,7 @@ instance isScalarTower_self [IsScalarTower R k k] :
 /-- Note that if `k` is a `CommSemiring` then we have `SMulCommClass k k k` and so we can take
 `R = k` in the below. In other words, if the coefficients are commutative amongst themselves, they
 also commute with the algebra multiplication. -/
-instance sMulCommClass_self [SMulCommClass R k k] :
+instance smulCommClass_self [SMulCommClass R k k] :
     SMulCommClass R (MonoidAlgebra k G) (MonoidAlgebra k G) :=
   ⟨fun t a b => by
     -- Porting note: `ext` → `refine Finsupp.ext fun _ => ?_`
@@ -655,14 +655,14 @@ instance sMulCommClass_self [SMulCommClass R k k] :
         (funext₂ fun a₁ b₁ => sum_smul_index' (g := b) (b := t) ?_)) ?_) <;>
       simp only [mul_apply, Finsupp.sum, Finset.smul_sum, smul_ite, mul_smul_comm,
         imp_true_iff, ite_eq_right_iff, Pi.smul_apply, mul_zero, smul_zero]⟩
-#align monoid_algebra.smul_comm_class_self MonoidAlgebra.sMulCommClass_self
+#align monoid_algebra.smul_comm_class_self MonoidAlgebra.smulCommClass_self
 
-instance sMulCommClass_symm_self [SMulCommClass k R k] :
+instance smulCommClass_symm_self [SMulCommClass k R k] :
     SMulCommClass (MonoidAlgebra k G) R (MonoidAlgebra k G) :=
   ⟨fun t a b => by
     haveI := SMulCommClass.symm k R k
     rw [← smul_comm]⟩
-#align monoid_algebra.smul_comm_class_symm_self MonoidAlgebra.sMulCommClass_symm_self
+#align monoid_algebra.smul_comm_class_symm_self MonoidAlgebra.smulCommClass_symm_self
 
 variable {A : Type u₃} [NonUnitalNonAssocSemiring A]
 
@@ -1752,15 +1752,15 @@ instance isScalarTower_self [IsScalarTower R k k] :
 /-- Note that if `k` is a `CommSemiring` then we have `SMulCommClass k k k` and so we can take
 `R = k` in the below. In other words, if the coefficients are commutative amongst themselves, they
 also commute with the algebra multiplication. -/
-instance sMulCommClass_self [SMulCommClass R k k] :
+instance smulCommClass_self [SMulCommClass R k k] :
     SMulCommClass R (AddMonoidAlgebra k G) (AddMonoidAlgebra k G) :=
-  @MonoidAlgebra.sMulCommClass_self k (Multiplicative G) R _ _ _ _
-#align add_monoid_algebra.smul_comm_class_self AddMonoidAlgebra.sMulCommClass_self
+  @MonoidAlgebra.smulCommClass_self k (Multiplicative G) R _ _ _ _
+#align add_monoid_algebra.smul_comm_class_self AddMonoidAlgebra.smulCommClass_self
 
-instance sMulCommClass_symm_self [SMulCommClass k R k] :
+instance smulCommClass_symm_self [SMulCommClass k R k] :
     SMulCommClass (AddMonoidAlgebra k G) R (AddMonoidAlgebra k G) :=
-  @MonoidAlgebra.sMulCommClass_symm_self k (Multiplicative G) R _ _ _ _
-#align add_monoid_algebra.smul_comm_class_symm_self AddMonoidAlgebra.sMulCommClass_symm_self
+  @MonoidAlgebra.smulCommClass_symm_self k (Multiplicative G) R _ _ _ _
+#align add_monoid_algebra.smul_comm_class_symm_self AddMonoidAlgebra.smulCommClass_symm_self
 
 variable {A : Type u₃} [NonUnitalNonAssocSemiring A]
 
chore: clean up spacing around at and goals (#5387)

Changes are of the form

  • some_tactic at h⊢ -> some_tactic at h ⊢
  • some_tactic at h -> some_tactic at h
Diff
@@ -448,7 +448,7 @@ theorem mul_apply_antidiagonal [Mul G] (f g : MonoidAlgebra k G) (x : G) (s : Fi
             fun _ _ => rfl)
         _ = ∑ p in s, f p.1 * g p.2 :=
           sum_subset (filter_subset _ _) fun p hps hp => by
-            simp only [mem_filter, mem_support_iff, not_and, Classical.not_not] at hp⊢
+            simp only [mem_filter, mem_support_iff, not_and, Classical.not_not] at hp ⊢
             by_cases h1 : f p.1 = 0
             · rw [h1, zero_mul]
             · rw [hp hps h1, mul_zero]
chore: remove superfluous parentheses in calls to ext (#5258)

Co-authored-by: Xavier Roblot <46200072+xroblot@users.noreply.github.com> Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr> Co-authored-by: Riccardo Brasca <riccardo.brasca@gmail.com> Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Pol'tta / Miyahara Kō <pol_tta@outlook.jp> Co-authored-by: Jason Yuen <jason_yuen2007@hotmail.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com> Co-authored-by: Jireh Loreaux <loreaujy@gmail.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: Heather Macbeth <25316162+hrmacbeth@users.noreply.github.com> Co-authored-by: Jujian Zhang <jujian.zhang1998@outlook.com> Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>

Diff
@@ -486,7 +486,7 @@ theorem mapDomain_mul {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β]
   simp_rw [mul_def, mapDomain_sum, mapDomain_single, map_mul]
   rw [Finsupp.sum_mapDomain_index]
   · congr
-    ext (a b)
+    ext a b
     rw [Finsupp.sum_mapDomain_index]
     · simp
     · simp [mul_add]
@@ -1557,7 +1557,7 @@ theorem mapDomain_mul {α : Type _} {β : Type _} {α₂ : Type _} [Semiring β]
   simp_rw [mul_def, mapDomain_sum, mapDomain_single, map_add]
   rw [Finsupp.sum_mapDomain_index]
   · congr
-    ext (a b)
+    ext a b
     rw [Finsupp.sum_mapDomain_index]
     · simp
     · simp [mul_add]
chore: fix grammar 1/3 (#5001)

All of these are doc fixes

Diff
@@ -134,7 +134,7 @@ theorem mapDomain_sum {k' G' : Type _} [Semiring k'] {f : G → G'} {s : MonoidA
     mapDomain f (s.sum v) = s.sum fun a b => mapDomain f (v a b) :=
   Finsupp.mapDomain_sum
 
-/-- A non-commutative version of `MonoidAlgebra.lift`: given a additive homomorphism `f : k →+ R`
+/-- A non-commutative version of `MonoidAlgebra.lift`: given an additive homomorphism `f : k →+ R`
 and a homomorphism `g : G → R`, returns the additive homomorphism from
 `MonoidAlgebra k G` such that `liftNC f g (single a b) = f b * g a`. If `f` is a ring homomorphism
 and the range of either `f` or `g` is in center of `R`, then the result is a ring homomorphism.  If
@@ -806,7 +806,7 @@ instance algebra {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Monoi
       refine Finsupp.ext fun _ => ?_
       simp [single_one_mul_apply, mul_single_one_apply, Algebra.commutes] }
 
-/-- `Finsupp.single 1` as a `AlgHom` -/
+/-- `Finsupp.single 1` as an `AlgHom` -/
 @[simps! apply]
 def singleOneAlgHom {A : Type _} [CommSemiring k] [Semiring A] [Algebra k A] [Monoid G] :
     A →ₐ[k] MonoidAlgebra A G :=
@@ -852,7 +852,7 @@ variable [CommSemiring k] [Monoid G]
 
 variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [Algebra k B]
 
-/-- `liftNCRingHom` as a `AlgHom`, for when `f` is an `AlgHom` -/
+/-- `liftNCRingHom` as an `AlgHom`, for when `f` is an `AlgHom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
     MonoidAlgebra A G →ₐ[k] B :=
   { liftNCRingHom (f : A →+* B) g h_comm with
@@ -1083,7 +1083,7 @@ open Finsupp MulOpposite
 
 variable [Semiring k]
 
-/-- The opposite of an `MonoidAlgebra R I` equivalent as a ring to
+/-- The opposite of a `MonoidAlgebra R I` equivalent as a ring to
 the `MonoidAlgebra Rᵐᵒᵖ Iᵐᵒᵖ` over the opposite ring, taking elements to their opposite. -/
 @[simps! (config := { simpRhs := true }) apply symm_apply]
 protected noncomputable def opRingEquiv [Monoid G] :
@@ -1222,8 +1222,8 @@ theorem mapDomain_single {G' : Type _} {f : G → G'} {a : G} {b : k} :
     mapDomain f (single a b) = single (f a) b :=
   Finsupp.mapDomain_single
 
-/-- A non-commutative version of `AddMonoidAlgebra.lift`: given a additive homomorphism `f : k →+
-R` and a map `g : Multiplicative G → R`, returns the additive
+/-- A non-commutative version of `AddMonoidAlgebra.lift`: given an additive homomorphism
+`f : k →+ R` and a map `g : Multiplicative G → R`, returns the additive
 homomorphism from `AddMonoidAlgebra k G` such that `liftNC f g (single a b) = f b * g a`. If `f`
 is a ring homomorphism and the range of either `f` or `g` is in center of `R`, then the result is a
 ring homomorphism.  If `R` is a `k`-algebra and `f = algebraMap k R`, then the result is an algebra
@@ -1896,7 +1896,7 @@ instance algebra [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
       simp [single_zero_mul_apply, mul_single_zero_apply, Algebra.commutes] }
 #align add_monoid_algebra.algebra AddMonoidAlgebra.algebra
 
-/-- `Finsupp.single 0` as a `AlgHom` -/
+/-- `Finsupp.single 0` as an `AlgHom` -/
 @[simps! apply]
 def singleZeroAlgHom [CommSemiring R] [Semiring k] [Algebra R k] [AddMonoid G] :
     k →ₐ[R] AddMonoidAlgebra k G :=
@@ -1923,7 +1923,7 @@ variable [CommSemiring k] [AddMonoid G]
 
 variable {A : Type u₃} [Semiring A] [Algebra k A] {B : Type _} [Semiring B] [Algebra k B]
 
-/-- `liftNCRingHom` as a `AlgHom`, for when `f` is an `AlgHom` -/
+/-- `liftNCRingHom` as an `AlgHom`, for when `f` is an `AlgHom` -/
 def liftNCAlgHom (f : A →ₐ[k] B) (g : Multiplicative G →* B) (h_comm : ∀ x y, Commute (f x) (g y)) :
     AddMonoidAlgebra A G →ₐ[k] B :=
   {
chore: fix typos (#4518)

I ran codespell Mathlib and got tired halfway through the suggestions.

Diff
@@ -1700,7 +1700,7 @@ end AddMonoidAlgebra
 We have not defined `AddMonoidAlgebra k G = MonoidAlgebra k (Multiplicative G)`
 because historically this caused problems;
 since the changes that have made `nsmul` definitional, this would be possible,
-but for now we just contruct the ring isomorphisms using `RingEquiv.refl _`.
+but for now we just construct the ring isomorphisms using `RingEquiv.refl _`.
 -/
 
 
refactor: use the typeclass SProd to implement overloaded notation · ×ˢ · (#4200)

Currently, the following notations are changed from · ×ˢ · because Lean 4 can't deal with ambiguous notations. | Definition | Notation | | :

Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: Chris Hughes <chrishughes24@gmail.com>

Diff
@@ -437,8 +437,8 @@ theorem mul_apply_antidiagonal [Mul G] (f g : MonoidAlgebra k G) (x : G) (s : Fi
       let F : G × G → k := fun p => if p.1 * p.2 = x then f p.1 * g p.2 else 0
       calc
         (f * g) x = ∑ a₁ in f.support, ∑ a₂ in g.support, F (a₁, a₂) := mul_apply f g x
-        _ = ∑ p in f.support ×ᶠ g.support, F p := Finset.sum_product.symm
-        _ = ∑ p in (f.support ×ᶠ g.support).filter fun p : G × G => p.1 * p.2 = x, f p.1 * g p.2 :=
+        _ = ∑ p in f.support ×ˢ g.support, F p := Finset.sum_product.symm
+        _ = ∑ p in (f.support ×ˢ g.support).filter fun p : G × G => p.1 * p.2 = x, f p.1 * g p.2 :=
           (Finset.sum_filter _ _).symm
         _ = ∑ p in s.filter fun p : G × G => p.1 ∈ f.support ∧ p.2 ∈ g.support, f p.1 * g p.2 :=
           (sum_congr
chore: fix upper/lowercase in comments (#4360)
  • Run a non-interactive version of fix-comments.py on all files.
  • Go through the diff and manually add/discard/edit chunks.
Diff
@@ -33,8 +33,8 @@ in the same way, and then define the convolution product on these.
 
 When the domain is additive, this is used to define polynomials:
 ```
-polynomial α := add_monoid_algebra ℕ α
-mv_polynomial σ α := add_monoid_algebra (σ →₀ ℕ) α
+Polynomial α := AddMonoidAlgebra ℕ α
+MvPolynomial σ α := AddMonoidAlgebra (σ →₀ ℕ) α
 ```
 
 When the domain is multiplicative, e.g. a group, this will be used to define the group ring.
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Yury G. Kudryashov, Scott Morrison
 
 ! This file was ported from Lean 3 source module algebra.monoid_algebra.basic
-! leanprover-community/mathlib commit f69db8cecc668e2d5894d7e9bfc491da60db3b9f
+! leanprover-community/mathlib commit 949dc57e616a621462062668c9f39e4e17b64b69
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -394,9 +394,8 @@ instance faithfulSMul [Monoid R] [Semiring k] [DistribMulAction R k] [FaithfulSM
   Finsupp.faithfulSMul
 #align monoid_algebra.has_faithful_smul MonoidAlgebra.faithfulSMul
 
-instance isScalarTower [Monoid R] [Monoid S] [Semiring k] [DistribMulAction R k]
-    [DistribMulAction S k] [SMul R S] [IsScalarTower R S k] :
-    IsScalarTower R S (MonoidAlgebra k G) :=
+instance isScalarTower [Semiring k] [SMulZeroClass R k] [SMulZeroClass S k] [SMul R S]
+    [IsScalarTower R S k] : IsScalarTower R S (MonoidAlgebra k G) :=
   Finsupp.isScalarTower G k
 #align monoid_algebra.is_scalar_tower MonoidAlgebra.isScalarTower
 
chore: bye-bye, solo bys! (#3825)

This PR puts, with one exception, every single remaining by that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh. The exception is when the by begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.

Essentially this is s/\n *by$/ by/g, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated bys".

Diff
@@ -448,8 +448,7 @@ theorem mul_apply_antidiagonal [Mul G] (f g : MonoidAlgebra k G) (x : G) (s : Fi
               simp only [mem_filter, mem_product, hs, and_comm])
             fun _ _ => rfl)
         _ = ∑ p in s, f p.1 * g p.2 :=
-          sum_subset (filter_subset _ _) fun p hps hp =>
-            by
+          sum_subset (filter_subset _ _) fun p hps hp => by
             simp only [mem_filter, mem_support_iff, not_and, Classical.not_not] at hp⊢
             by_cases h1 : f p.1 = 0
             · rw [h1, zero_mul]
feat(Data/MvPolynomial/Basic): add and generalize some lemmas from Finsupp and MonoidAlgebra (#3604)

Most of these changes generalize from DistribMulAction to SmulZeroClass. The new lemmas are all just proved using corresponding lemmas on the underlying types.

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Yury G. Kudryashov, Scott Morrison
 
 ! This file was ported from Lean 3 source module algebra.monoid_algebra.basic
-! leanprover-community/mathlib commit 2651125b48fc5c170ab1111afd0817c903b1fc6c
+! leanprover-community/mathlib commit f69db8cecc668e2d5894d7e9bfc491da60db3b9f
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -1483,8 +1483,8 @@ instance distribMulAction [Monoid R] [Semiring k] [DistribMulAction R k] :
   Finsupp.distribMulAction G k
 #align add_monoid_algebra.distrib_mul_action AddMonoidAlgebra.distribMulAction
 
-instance faithfulSMul [Monoid R] [Semiring k] [DistribMulAction R k] [FaithfulSMul R k]
-    [Nonempty G] : FaithfulSMul R (AddMonoidAlgebra k G) :=
+instance faithfulSMul [Semiring k] [SMulZeroClass R k] [FaithfulSMul R k] [Nonempty G] :
+    FaithfulSMul R (AddMonoidAlgebra k G) :=
   Finsupp.faithfulSMul
 #align add_monoid_algebra.faithful_smul AddMonoidAlgebra.faithfulSMul
 
@@ -1492,18 +1492,17 @@ instance module [Semiring R] [Semiring k] [Module R k] : Module R (AddMonoidAlge
   Finsupp.module G k
 #align add_monoid_algebra.module AddMonoidAlgebra.module
 
-instance isScalarTower [Monoid R] [Monoid S] [Semiring k] [DistribMulAction R k]
-    [DistribMulAction S k] [SMul R S] [IsScalarTower R S k] :
-    IsScalarTower R S (AddMonoidAlgebra k G) :=
+instance isScalarTower [Semiring k] [SMulZeroClass R k] [SMulZeroClass S k] [SMul R S]
+    [IsScalarTower R S k] : IsScalarTower R S (AddMonoidAlgebra k G) :=
   Finsupp.isScalarTower G k
 #align add_monoid_algebra.is_scalar_tower AddMonoidAlgebra.isScalarTower
 
-instance smulCommClass [Monoid R] [Monoid S] [Semiring k] [DistribMulAction R k]
-    [DistribMulAction S k] [SMulCommClass R S k] : SMulCommClass R S (AddMonoidAlgebra k G) :=
+instance smulCommClass [Semiring k] [SMulZeroClass R k] [SMulZeroClass S k] [SMulCommClass R S k] :
+    SMulCommClass R S (AddMonoidAlgebra k G) :=
   Finsupp.smulCommClass G k
 #align add_monoid_algebra.smul_comm_tower AddMonoidAlgebra.smulCommClass
 
-instance isCentralScalar [Monoid R] [Semiring k] [DistribMulAction R k] [DistribMulAction Rᵐᵒᵖ k]
+instance isCentralScalar [Semiring k] [SMulZeroClass R k] [SMulZeroClass Rᵐᵒᵖ k]
     [IsCentralScalar R k] : IsCentralScalar R (AddMonoidAlgebra k G) :=
   Finsupp.isCentralScalar G k
 #align add_monoid_algebra.is_central_scalar AddMonoidAlgebra.isCentralScalar
chore: forward-port leanprover-community/mathlib#18852 (#3646)

This additionally makes a further small generalization to some of the finsupp instances (labelled with porting notes) which should be backported.

The new statement of Rat.smul_one_eq_coe fixes a proof in Mathlib/Analysis/NormedSpace/Basic.lean that was mangled during porting.

Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Yury G. Kudryashov, Scott Morrison
 
 ! This file was ported from Lean 3 source module algebra.monoid_algebra.basic
-! leanprover-community/mathlib commit 57e09a1296bfb4330ddf6624f1028ba186117d82
+! leanprover-community/mathlib commit 2651125b48fc5c170ab1111afd0817c903b1fc6c
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -1474,6 +1474,10 @@ instance commRing [CommRing k] [AddCommMonoid G] : CommRing (AddMonoidAlgebra k
 
 variable {S : Type _}
 
+instance distribSMul [Semiring k] [DistribSMul R k] : DistribSMul R (AddMonoidAlgebra k G) :=
+  Finsupp.distribSMul G k
+#align add_monoid_algebra.distrib_smul AddMonoidAlgebra.distribSMul
+
 instance distribMulAction [Monoid R] [Semiring k] [DistribMulAction R k] :
     DistribMulAction R (AddMonoidAlgebra k G) :=
   Finsupp.distribMulAction G k
chore: fix #align lines (#3640)

This PR fixes two things:

  • Most align statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align). This is often seen in the mathport output after ending calc blocks.
  • All remaining more-than-one-line #align statements. (This was needed for a script I wrote for #3630.)
Diff
@@ -430,7 +430,6 @@ theorem mul_apply [DecidableEq G] [Mul G] (f g : MonoidAlgebra k G) (x : G) :
   rw [mul_def, Finsupp.sum_apply]; congr; ext
   rw [Finsupp.sum_apply]; congr; ext
   apply single_apply
-
 #align monoid_algebra.mul_apply MonoidAlgebra.mul_apply
 
 theorem mul_apply_antidiagonal [Mul G] (f g : MonoidAlgebra k G) (x : G) (s : Finset (G × G))
@@ -455,7 +454,6 @@ theorem mul_apply_antidiagonal [Mul G] (f g : MonoidAlgebra k G) (x : G) (s : Fi
             by_cases h1 : f p.1 = 0
             · rw [h1, zero_mul]
             · rw [hp hps h1, mul_zero]
-
 #align monoid_algebra.mul_apply_antidiagonal MonoidAlgebra.mul_apply_antidiagonal
 
 @[simp]
@@ -555,7 +553,6 @@ theorem mul_single_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
             sum f fun a b => if a = y then b * r else 0 := by simp only [mul_apply, A, H]
         _ = if y ∈ f.support then f y * r else 0 := (f.support.sum_ite_eq' _ _)
         _ = f y * r := by split_ifs with h <;> simp at h <;> simp [h]
-
 #align monoid_algebra.mul_single_apply_aux MonoidAlgebra.mul_single_apply_aux
 
 theorem mul_single_one_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x : G) :
@@ -587,7 +584,6 @@ theorem single_mul_apply_aux [Mul G] (f : MonoidAlgebra k G) {r : k} {x y z : G}
         _ = f.sum fun a b => ite (a = z) (r * b) 0 := by simp only [H]
         _ = if z ∈ f.support then r * f z else 0 := (f.support.sum_ite_eq' _ _)
         _ = _ := by split_ifs with h <;> simp at h <;> simp [h]
-
 #align monoid_algebra.single_mul_apply_aux MonoidAlgebra.single_mul_apply_aux
 
 theorem single_one_mul_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x : G) :
@@ -1070,7 +1066,6 @@ theorem mul_apply_left (f g : MonoidAlgebra k G) (x : G) :
     (f * g) x = sum f fun a b => (single a b * g) x := by
       rw [← Finsupp.sum_apply, ← Finsupp.sum_mul g f, f.sum_single]
     _ = _ := by simp only [single_mul_apply, Finsupp.sum]
-
 #align monoid_algebra.mul_apply_left MonoidAlgebra.mul_apply_left
 
 -- If we'd assumed `CommSemiring`, we could deduce this from `mul_apply_left`.
@@ -1080,7 +1075,6 @@ theorem mul_apply_right (f g : MonoidAlgebra k G) (x : G) :
     (f * g) x = sum g fun a b => (f * single a b) x := by
       rw [← Finsupp.sum_apply, ← Finsupp.mul_sum f g, g.sum_single]
     _ = _ := by simp only [mul_single_apply, Finsupp.sum]
-
 #align monoid_algebra.mul_apply_right MonoidAlgebra.mul_apply_right
 
 end
feat: port RepresentationTheory.Maschke (#2986)
Diff
@@ -58,7 +58,7 @@ open Finset
 
 open Finsupp hiding single mapDomain
 
-universe u₁ u₂ u₃
+universe u₁ u₂ u₃ u₄
 
 variable (k : Type u₁) (G : Type u₂) {R : Type _}
 
@@ -997,7 +997,7 @@ section
 
 variable {k}
 
-variable [Monoid G] [CommSemiring k] {V W : Type u₃} [AddCommMonoid V] [Module k V]
+variable [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)
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Yury G. Kudryashov, Scott Morrison
 
 ! This file was ported from Lean 3 source module algebra.monoid_algebra.basic
-! leanprover-community/mathlib commit 6623e6af705e97002a9054c1c05a980180276fc1
+! leanprover-community/mathlib commit 57e09a1296bfb4330ddf6624f1028ba186117d82
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -563,6 +563,19 @@ theorem mul_single_one_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x
   f.mul_single_apply_aux fun a => by rw [mul_one]
 #align monoid_algebra.mul_single_one_apply MonoidAlgebra.mul_single_one_apply
 
+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 := by
+  classical
+    rw [mul_apply, Finsupp.sum_comm, Finsupp.sum_single_index]
+    swap
+    · simp_rw [Finsupp.sum, MulZeroClass.mul_zero, ite_self, Finset.sum_const_zero]
+    · apply Finset.sum_eq_zero
+      simp_rw [ite_eq_right_iff]
+      rintro g'' _hg'' rfl
+      exfalso
+      exact h ⟨_, rfl⟩
+#align monoid_algebra.mul_single_apply_of_not_exists_mul MonoidAlgebra.mul_single_apply_of_not_exists_mul
+
 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 := by
   classical exact
@@ -582,6 +595,19 @@ theorem single_one_mul_apply [MulOneClass G] (f : MonoidAlgebra k G) (r : k) (x
   f.single_mul_apply_aux fun a => by rw [one_mul]
 #align monoid_algebra.single_one_mul_apply MonoidAlgebra.single_one_mul_apply
 
+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 := by
+  classical
+    rw [mul_apply, Finsupp.sum_single_index]
+    swap
+    · simp_rw [Finsupp.sum, MulZeroClass.zero_mul, ite_self, Finset.sum_const_zero]
+    · apply Finset.sum_eq_zero
+      simp_rw [ite_eq_right_iff]
+      rintro g'' _hg'' rfl
+      exfalso
+      exact h ⟨_, rfl⟩
+#align monoid_algebra.single_mul_apply_of_not_exists_mul MonoidAlgebra.single_mul_apply_of_not_exists_mul
+
 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 φ := by
   suffices :
@@ -1611,6 +1637,11 @@ theorem mul_single_zero_apply [AddZeroClass G] (f : AddMonoidAlgebra k G) (r : k
   f.mul_single_apply_aux r _ _ _ fun a => by rw [add_zero]
 #align add_monoid_algebra.mul_single_zero_apply AddMonoidAlgebra.mul_single_zero_apply
 
+theorem mul_single_apply_of_not_exists_add [Add G] (r : k) {g g' : G} (x : AddMonoidAlgebra k G)
+    (h : ¬∃ d, g' = d + g) : (x * single g r) g' = 0 :=
+  @MonoidAlgebra.mul_single_apply_of_not_exists_mul k (Multiplicative G) _ _ _ _ _ _ h
+#align add_monoid_algebra.mul_single_apply_of_not_exists_add AddMonoidAlgebra.mul_single_apply_of_not_exists_add
+
 theorem single_mul_apply_aux [Add G] (f : AddMonoidAlgebra k G) (r : k) (x y z : G)
     (H : ∀ a, x + a = y ↔ a = z) : (single x r * f) y = r * f z :=
   @MonoidAlgebra.single_mul_apply_aux k (Multiplicative G) _ _ _ _ _ _ _ H
@@ -1621,6 +1652,11 @@ theorem single_zero_mul_apply [AddZeroClass G] (f : AddMonoidAlgebra k G) (r : k
   f.single_mul_apply_aux r _ _ _ fun a => by rw [zero_add]
 #align add_monoid_algebra.single_zero_mul_apply AddMonoidAlgebra.single_zero_mul_apply
 
+theorem single_mul_apply_of_not_exists_add [Add G] (r : k) {g g' : G} (x : AddMonoidAlgebra k G)
+    (h : ¬∃ d, g' = g + d) : (single g r * x) g' = 0 :=
+  @MonoidAlgebra.single_mul_apply_of_not_exists_mul k (Multiplicative G) _ _ _ _ _ _ h
+#align add_monoid_algebra.single_mul_apply_of_not_exists_add AddMonoidAlgebra.single_mul_apply_of_not_exists_add
+
 theorem mul_single_apply [AddGroup G] (f : AddMonoidAlgebra k G) (r : k) (x y : G) :
     (f * single x r) y = f (y - x) * r :=
   (sub_eq_add_neg y x).symm ▸ @MonoidAlgebra.mul_single_apply k (Multiplicative G) _ _ _ _ _ _
fix: add back lemmas deleted during porting (#3035)

These lemmas are not tautologies, despite the assumption that they were. We know this because otherwise CI would fail.

After adding these back, a few statements downstream need to change from statements about toEquiv to statements about EquivLike.toEquiv.

Diff
@@ -1073,7 +1073,8 @@ protected noncomputable def opRingEquiv [Monoid G] :
   { opAddEquiv.symm.trans <|
       (Finsupp.mapRange.addEquiv (opAddEquiv : k ≃+ kᵐᵒᵖ)).trans <| Finsupp.domCongr opEquiv with
     map_mul' := by
-      rw [Equiv.toFun_as_coe, AddEquiv.coe_toEquiv, ← AddEquiv.coe_toAddMonoidHom]
+      rw [Equiv.toFun_as_coe, AddEquiv.toEquiv_eq_coe, AddEquiv.coe_toEquiv,
+        ← AddEquiv.coe_toAddMonoidHom]
       refine Iff.mpr (AddMonoidHom.map_mul_iff (R := (MonoidAlgebra k G)ᵐᵒᵖ)
         (S := MonoidAlgebra kᵐᵒᵖ Gᵐᵒᵖ) _) ?_
       -- Porting note: Was `ext`.
@@ -1816,7 +1817,8 @@ protected noncomputable def opRingEquiv [AddCommMonoid G] :
   { MulOpposite.opAddEquiv.symm.trans
       (Finsupp.mapRange.addEquiv (MulOpposite.opAddEquiv : k ≃+ kᵐᵒᵖ)) with
     map_mul' := by
-      rw [Equiv.toFun_as_coe, AddEquiv.coe_toEquiv, ← AddEquiv.coe_toAddMonoidHom]
+      rw [Equiv.toFun_as_coe, AddEquiv.toEquiv_eq_coe, AddEquiv.coe_toEquiv,
+        ← AddEquiv.coe_toAddMonoidHom]
       refine Iff.mpr (AddMonoidHom.map_mul_iff (R := (AddMonoidAlgebra k G)ᵐᵒᵖ)
         (S := AddMonoidAlgebra kᵐᵒᵖ G) _) ?_
       -- Porting note: Was `ext`.
feat: port Algebra.MonoidAlgebra.Basic (#2589)

Dependencies 8 + 375

376 files ported (97.9%)
157902 lines ported (98.1%)
Show graph

The unported dependencies are