algebra.hom.group_actionMathlib.GroupTheory.GroupAction.Hom

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)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -72,32 +72,28 @@ variable (S' : Type _) [Ring S'] [MulSemiringAction M S']
 
 variable (T : Type _) [Semiring T] [MulSemiringAction M T]
 
-#print MulActionHom /-
 /-- Equivariant functions. -/
 @[nolint has_nonempty_instance]
 structure MulActionHom where
   toFun : X → Y
   map_smul' : ∀ (m : M') (x : X), to_fun (m • x) = m • to_fun x
-#align mul_action_hom MulActionHom
--/
+#align mul_action_hom MulActionHomₓ
 
 notation:25 X " →[" M:25 "] " Y:0 => MulActionHom M X Y
 
-#print SMulHomClass /-
 /-- `smul_hom_class F M X Y` states that `F` is a type of morphisms preserving
 scalar multiplication by `M`.
 
 You should extend this class when you extend `mul_action_hom`. -/
-class SMulHomClass (F : Type _) (M X Y : outParam <| Type _) [SMul M X] [SMul M Y] extends
+class MulActionSemiHomClass (F : Type _) (M X Y : outParam <| Type _) [SMul M X] [SMul M Y] extends
     DFunLike F X fun _ => Y where
   map_smul : ∀ (f : F) (c : M) (x : X), f (c • x) = c • f x
-#align smul_hom_class SMulHomClass
--/
+#align smul_hom_class MulActionSemiHomClassₓ
 
 -- `M` becomes a metavariable but it's an `out_param` so it's not a problem.
-attribute [nolint dangerous_instance] SMulHomClass.toFunLike
+attribute [nolint dangerous_instance] MulActionSemiHomClass.toFunLike
 
-export SMulHomClass (map_smul)
+export MulActionSemiHomClass (map_smul)
 
 attribute [simp] map_smul
 
@@ -106,7 +102,7 @@ namespace MulActionHom
 instance : CoeFun (X →[M'] Y) fun _ => X → Y :=
   ⟨MulActionHom.toFun⟩
 
-instance : SMulHomClass (X →[M'] Y) M' X Y
+instance : MulActionSemiHomClass (X →[M'] Y) M' X Y
     where
   coe := MulActionHom.toFun
   coe_injective' f g h := by cases f <;> cases g <;> congr
@@ -190,10 +186,10 @@ theorem comp_id (f : X →[M'] Y) : f.comp (MulActionHom.id M') = f :=
 
 variable {A B}
 
-#print MulActionHom.inverse /-
+#print MulActionHom.inverse' /-
 /-- The inverse of a bijective equivariant map is equivariant. -/
 @[simps]
-def inverse (f : A →[M] B) (g : B → A) (h₁ : Function.LeftInverse g f)
+def inverse' (f : A →[M] B) (g : B → A) (h₁ : Function.LeftInverse g f)
     (h₂ : Function.RightInverse g f) : B →[M] A
     where
   toFun := g
@@ -202,16 +198,14 @@ def inverse (f : A →[M] B) (g : B → A) (h₁ : Function.LeftInverse g f)
       g (m • x) = g (m • f (g x)) := by rw [h₂]
       _ = g (f (m • g x)) := by rw [f.map_smul]
       _ = m • g x := by rw [h₁]
-#align mul_action_hom.inverse MulActionHom.inverse
+#align mul_action_hom.inverse MulActionHom.inverse'
 -/
 
 end MulActionHom
 
-#print DistribMulActionHom /-
 /-- Equivariant additive monoid homomorphisms. -/
 structure DistribMulActionHom extends A →[M] B, A →+ B
-#align distrib_mul_action_hom DistribMulActionHom
--/
+#align distrib_mul_action_hom DistribMulActionHomₓ
 
 /-- Reinterpret an equivariant additive monoid homomorphism as an additive monoid homomorphism. -/
 add_decl_doc DistribMulActionHom.toAddMonoidHom
@@ -221,34 +215,32 @@ add_decl_doc DistribMulActionHom.toMulActionHom
 
 notation:25 A " →+[" M:25 "] " B:0 => DistribMulActionHom M A B
 
-#print DistribMulActionHomClass /-
 /-- `distrib_mul_action_hom_class F M A B` states that `F` is a type of morphisms preserving
 the additive monoid structure and scalar multiplication by `M`.
 
 You should extend this class when you extend `distrib_mul_action_hom`. -/
-class DistribMulActionHomClass (F : Type _) (M A B : outParam <| Type _) [Monoid M] [AddMonoid A]
-    [AddMonoid B] [DistribMulAction M A] [DistribMulAction M B] extends SMulHomClass F M A B,
-    AddMonoidHomClass F A B
-#align distrib_mul_action_hom_class DistribMulActionHomClass
--/
+class DistribMulActionSemiHomClass (F : Type _) (M A B : outParam <| Type _) [Monoid M]
+    [AddMonoid A] [AddMonoid B] [DistribMulAction M A] [DistribMulAction M B] extends
+    MulActionSemiHomClass F M A B, AddMonoidHomClass F A B
+#align distrib_mul_action_hom_class DistribMulActionSemiHomClassₓ
 
 -- `M` becomes a metavariable but it's an `out_param` so it's not a problem.
-attribute [nolint dangerous_instance] DistribMulActionHomClass.toAddMonoidHomClass
+attribute [nolint dangerous_instance] DistribMulActionSemiHomClass.toAddMonoidHomClass
 
 namespace DistribMulActionHom
 
 instance hasCoe : Coe (A →+[M] B) (A →+ B) :=
   ⟨toAddMonoidHom⟩
-#align distrib_mul_action_hom.has_coe DistribMulActionHom.hasCoe
+#align distrib_mul_action_hom.has_coe DistribMulActionHomₓ.hasCoe
 
 instance hasCoe' : Coe (A →+[M] B) (A →[M] B) :=
   ⟨toMulActionHom⟩
-#align distrib_mul_action_hom.has_coe' DistribMulActionHom.hasCoe'
+#align distrib_mul_action_hom.has_coe' DistribMulActionHomₓ.hasCoe'
 
 instance : CoeFun (A →+[M] B) fun _ => A → B :=
   ⟨toFun⟩
 
-instance : DistribMulActionHomClass (A →+[M] B) M A B
+instance : DistribMulActionSemiHomClass (A →+[M] B) M A B
     where
   coe := DistribMulActionHom.toFun
   coe_injective' f g h := by cases f <;> cases g <;> congr
@@ -334,10 +326,10 @@ protected theorem map_sub (f : A' →+[M] B') (x y : A') : f (x - y) = f x - f y
 #align distrib_mul_action_hom.map_sub DistribMulActionHom.map_sub
 -/
 
-#print DistribMulActionHom.map_smul /-
-protected theorem map_smul (f : A →+[M] B) (m : M) (x : A) : f (m • x) = m • f x :=
+#print DistribMulActionHom.map_smulₑ /-
+protected theorem map_smulₑ (f : A →+[M] B) (m : M) (x : A) : f (m • x) = m • f x :=
   map_smul _ _ _
-#align distrib_mul_action_hom.map_smul DistribMulActionHom.map_smul
+#align distrib_mul_action_hom.map_smul DistribMulActionHom.map_smulₑ
 -/
 
 variable (M) {A}
@@ -452,12 +444,10 @@ end Semiring
 
 end DistribMulActionHom
 
-#print MulSemiringActionHom /-
 /-- Equivariant ring homomorphisms. -/
 @[nolint has_nonempty_instance]
 structure MulSemiringActionHom extends R →+[M] S, R →+* S
-#align mul_semiring_action_hom MulSemiringActionHom
--/
+#align mul_semiring_action_hom MulSemiringActionHomₓ
 
 /-- Reinterpret an equivariant ring homomorphism as a ring homomorphism. -/
 add_decl_doc MulSemiringActionHom.toRingHom
@@ -467,34 +457,32 @@ add_decl_doc MulSemiringActionHom.toDistribMulActionHom
 
 notation:25 R " →+*[" M:25 "] " S:0 => MulSemiringActionHom M R S
 
-#print MulSemiringActionHomClass /-
 /-- `mul_semiring_action_hom_class F M R S` states that `F` is a type of morphisms preserving
 the ring structure and scalar multiplication by `M`.
 
 You should extend this class when you extend `mul_semiring_action_hom`. -/
-class MulSemiringActionHomClass (F : Type _) (M R S : outParam <| Type _) [Monoid M] [Semiring R]
-    [Semiring S] [DistribMulAction M R] [DistribMulAction M S] extends
-    DistribMulActionHomClass F M R S, RingHomClass F R S
-#align mul_semiring_action_hom_class MulSemiringActionHomClass
--/
+class MulSemiringActionSemiHomClass (F : Type _) (M R S : outParam <| Type _) [Monoid M]
+    [Semiring R] [Semiring S] [DistribMulAction M R] [DistribMulAction M S] extends
+    DistribMulActionSemiHomClass F M R S, RingHomClass F R S
+#align mul_semiring_action_hom_class MulSemiringActionSemiHomClassₓ
 
 -- `M` becomes a metavariable but it's an `out_param` so it's not a problem.
-attribute [nolint dangerous_instance] MulSemiringActionHomClass.toRingHomClass
+attribute [nolint dangerous_instance] MulSemiringActionSemiHomClass.toRingHomClass
 
 namespace MulSemiringActionHom
 
 instance hasCoe : Coe (R →+*[M] S) (R →+* S) :=
   ⟨toRingHom⟩
-#align mul_semiring_action_hom.has_coe MulSemiringActionHom.hasCoe
+#align mul_semiring_action_hom.has_coe MulSemiringActionHomₓ.hasCoe
 
 instance hasCoe' : Coe (R →+*[M] S) (R →+[M] S) :=
   ⟨toDistribMulActionHom⟩
-#align mul_semiring_action_hom.has_coe' MulSemiringActionHom.hasCoe'
+#align mul_semiring_action_hom.has_coe' MulSemiringActionHomₓ.hasCoe'
 
 instance : CoeFun (R →+*[M] S) fun _ => R → S :=
   ⟨fun c => c.toFun⟩
 
-instance : MulSemiringActionHomClass (R →+*[M] S) M R S
+instance : MulSemiringActionSemiHomClass (R →+*[M] S) M R S
     where
   coe := MulSemiringActionHom.toFun
   coe_injective' f g h := by cases f <;> cases g <;> congr
@@ -593,27 +581,21 @@ theorem id_apply (x : R) : MulSemiringActionHom.id M x = x :=
 
 variable {M R S T}
 
-#print MulSemiringActionHom.comp /-
 /-- Composition of two equivariant additive monoid homomorphisms. -/
 def comp (g : S →+*[M] T) (f : R →+*[M] S) : R →+*[M] T :=
   { DistribMulActionHom.comp (g : S →+[M] T) (f : R →+[M] S),
     RingHom.comp (g : S →+* T) (f : R →+* S) with }
-#align mul_semiring_action_hom.comp MulSemiringActionHom.comp
--/
+#align mul_semiring_action_hom.comp MulSemiringActionHomₓ.comp
 
-#print MulSemiringActionHom.comp_apply /-
 @[simp]
 theorem comp_apply (g : S →+*[M] T) (f : R →+*[M] S) (x : R) : g.comp f x = g (f x) :=
   rfl
-#align mul_semiring_action_hom.comp_apply MulSemiringActionHom.comp_apply
--/
+#align mul_semiring_action_hom.comp_apply MulSemiringActionHomₓ.comp_apply
 
-#print MulSemiringActionHom.id_comp /-
 @[simp]
 theorem id_comp (f : R →+*[M] S) : (MulSemiringActionHom.id M).comp f = f :=
   ext fun x => by rw [comp_apply, id_apply]
-#align mul_semiring_action_hom.id_comp MulSemiringActionHom.id_comp
--/
+#align mul_semiring_action_hom.id_comp MulSemiringActionHomₓ.id_comp
 
 #print MulSemiringActionHom.comp_id /-
 @[simp]
Diff
@@ -89,7 +89,7 @@ scalar multiplication by `M`.
 
 You should extend this class when you extend `mul_action_hom`. -/
 class SMulHomClass (F : Type _) (M X Y : outParam <| Type _) [SMul M X] [SMul M Y] extends
-    FunLike F X fun _ => Y where
+    DFunLike F X fun _ => Y where
   map_smul : ∀ (f : F) (c : M) (x : X), f (c • x) = c • f x
 #align smul_hom_class SMulHomClass
 -/
@@ -123,19 +123,19 @@ protected theorem map_smul (f : X →[M'] Y) (m : M') (x : X) : f (m • x) = m
 #print MulActionHom.ext /-
 @[ext]
 theorem ext : ∀ {f g : X →[M'] Y}, (∀ x, f x = g x) → f = g :=
-  FunLike.ext
+  DFunLike.ext
 #align mul_action_hom.ext MulActionHom.ext
 -/
 
 #print MulActionHom.ext_iff /-
 theorem ext_iff {f g : X →[M'] Y} : f = g ↔ ∀ x, f x = g x :=
-  FunLike.ext_iff
+  DFunLike.ext_iff
 #align mul_action_hom.ext_iff MulActionHom.ext_iff
 -/
 
 #print MulActionHom.congr_fun /-
 protected theorem congr_fun {f g : X →[M'] Y} (h : f = g) (x : X) : f x = g x :=
-  FunLike.congr_fun h _
+  DFunLike.congr_fun h _
 #align mul_action_hom.congr_fun MulActionHom.congr_fun
 -/
 
@@ -282,19 +282,19 @@ theorem coe_fn_coe' (f : A →+[M] B) : ((f : A →[M] B) : A → B) = f :=
 #print DistribMulActionHom.ext /-
 @[ext]
 theorem ext : ∀ {f g : A →+[M] B}, (∀ x, f x = g x) → f = g :=
-  FunLike.ext
+  DFunLike.ext
 #align distrib_mul_action_hom.ext DistribMulActionHom.ext
 -/
 
 #print DistribMulActionHom.ext_iff /-
 theorem ext_iff {f g : A →+[M] B} : f = g ↔ ∀ x, f x = g x :=
-  FunLike.ext_iff
+  DFunLike.ext_iff
 #align distrib_mul_action_hom.ext_iff DistribMulActionHom.ext_iff
 -/
 
 #print DistribMulActionHom.congr_fun /-
 protected theorem congr_fun {f g : A →+[M] B} (h : f = g) (x : A) : f x = g x :=
-  FunLike.congr_fun h _
+  DFunLike.congr_fun h _
 #align distrib_mul_action_hom.congr_fun DistribMulActionHom.congr_fun
 -/
 
@@ -523,13 +523,13 @@ theorem coe_fn_coe' (f : R →+*[M] S) : ((f : R →+[M] S) : R → S) = f :=
 #print MulSemiringActionHom.ext /-
 @[ext]
 theorem ext : ∀ {f g : R →+*[M] S}, (∀ x, f x = g x) → f = g :=
-  FunLike.ext
+  DFunLike.ext
 #align mul_semiring_action_hom.ext MulSemiringActionHom.ext
 -/
 
 #print MulSemiringActionHom.ext_iff /-
 theorem ext_iff {f g : R →+*[M] S} : f = g ↔ ∀ x, f x = g x :=
-  FunLike.ext_iff
+  DFunLike.ext_iff
 #align mul_semiring_action_hom.ext_iff MulSemiringActionHom.ext_iff
 -/
 
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2020 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau
 -/
-import Mathbin.Algebra.GroupRingAction.Basic
-import Mathbin.Algebra.Module.Basic
+import Algebra.GroupRingAction.Basic
+import Algebra.Module.Basic
 
 #align_import algebra.hom.group_action from "leanprover-community/mathlib"@"e04043d6bf7264a3c84bc69711dc354958ca4516"
 
Diff
@@ -502,7 +502,7 @@ instance : MulSemiringActionHomClass (R →+*[M] S) M R S
   map_zero := MulSemiringActionHom.map_zero'
   map_add := MulSemiringActionHom.map_add'
   map_one := MulSemiringActionHom.map_one'
-  map_mul := MulSemiringActionHom.map_mul'
+  map_hMul := MulSemiringActionHom.map_mul'
 
 variable {M R S}
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2020 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau
-
-! This file was ported from Lean 3 source module algebra.hom.group_action
-! leanprover-community/mathlib commit e04043d6bf7264a3c84bc69711dc354958ca4516
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.GroupRingAction.Basic
 import Mathbin.Algebra.Module.Basic
 
+#align_import algebra.hom.group_action from "leanprover-community/mathlib"@"e04043d6bf7264a3c84bc69711dc354958ca4516"
+
 /-!
 # Equivariant homomorphisms
 
Diff
@@ -84,7 +84,6 @@ structure MulActionHom where
 #align mul_action_hom MulActionHom
 -/
 
--- mathport name: mul_action_hom
 notation:25 X " →[" M:25 "] " Y:0 => MulActionHom M X Y
 
 #print SMulHomClass /-
@@ -118,22 +117,30 @@ instance : SMulHomClass (X →[M'] Y) M' X Y
 
 variable {M M' X Y}
 
+#print MulActionHom.map_smul /-
 protected theorem map_smul (f : X →[M'] Y) (m : M') (x : X) : f (m • x) = m • f x :=
   map_smul _ _ _
 #align mul_action_hom.map_smul MulActionHom.map_smul
+-/
 
+#print MulActionHom.ext /-
 @[ext]
 theorem ext : ∀ {f g : X →[M'] Y}, (∀ x, f x = g x) → f = g :=
   FunLike.ext
 #align mul_action_hom.ext MulActionHom.ext
+-/
 
+#print MulActionHom.ext_iff /-
 theorem ext_iff {f g : X →[M'] Y} : f = g ↔ ∀ x, f x = g x :=
   FunLike.ext_iff
 #align mul_action_hom.ext_iff MulActionHom.ext_iff
+-/
 
+#print MulActionHom.congr_fun /-
 protected theorem congr_fun {f g : X →[M'] Y} (h : f = g) (x : X) : f x = g x :=
   FunLike.congr_fun h _
 #align mul_action_hom.congr_fun MulActionHom.congr_fun
+-/
 
 variable (M M') {X}
 
@@ -163,23 +170,30 @@ def comp (g : Y →[M'] Z) (f : X →[M'] Y) : X →[M'] Z :=
 #align mul_action_hom.comp MulActionHom.comp
 -/
 
+#print MulActionHom.comp_apply /-
 @[simp]
 theorem comp_apply (g : Y →[M'] Z) (f : X →[M'] Y) (x : X) : g.comp f x = g (f x) :=
   rfl
 #align mul_action_hom.comp_apply MulActionHom.comp_apply
+-/
 
+#print MulActionHom.id_comp /-
 @[simp]
 theorem id_comp (f : X →[M'] Y) : (MulActionHom.id M').comp f = f :=
   ext fun x => by rw [comp_apply, id_apply]
 #align mul_action_hom.id_comp MulActionHom.id_comp
+-/
 
+#print MulActionHom.comp_id /-
 @[simp]
 theorem comp_id (f : X →[M'] Y) : f.comp (MulActionHom.id M') = f :=
   ext fun x => by rw [comp_apply, id_apply]
 #align mul_action_hom.comp_id MulActionHom.comp_id
+-/
 
 variable {A B}
 
+#print MulActionHom.inverse /-
 /-- The inverse of a bijective equivariant map is equivariant. -/
 @[simps]
 def inverse (f : A →[M] B) (g : B → A) (h₁ : Function.LeftInverse g f)
@@ -192,6 +206,7 @@ def inverse (f : A →[M] B) (g : B → A) (h₁ : Function.LeftInverse g f)
       _ = g (f (m • g x)) := by rw [f.map_smul]
       _ = m • g x := by rw [h₁]
 #align mul_action_hom.inverse MulActionHom.inverse
+-/
 
 end MulActionHom
 
@@ -207,7 +222,6 @@ add_decl_doc DistribMulActionHom.toAddMonoidHom
 /-- Reinterpret an equivariant additive monoid homomorphism as an equivariant function. -/
 add_decl_doc DistribMulActionHom.toMulActionHom
 
--- mathport name: «expr →+[ ] »
 notation:25 A " →+[" M:25 "] " B:0 => DistribMulActionHom M A B
 
 #print DistribMulActionHomClass /-
@@ -247,61 +261,87 @@ instance : DistribMulActionHomClass (A →+[M] B) M A B
 
 variable {M A B}
 
+#print DistribMulActionHom.toFun_eq_coe /-
 @[simp]
 theorem toFun_eq_coe (f : A →+[M] B) : f.toFun = ⇑f :=
   rfl
 #align distrib_mul_action_hom.to_fun_eq_coe DistribMulActionHom.toFun_eq_coe
+-/
 
+#print DistribMulActionHom.coe_fn_coe /-
 @[norm_cast]
 theorem coe_fn_coe (f : A →+[M] B) : ((f : A →+ B) : A → B) = f :=
   rfl
 #align distrib_mul_action_hom.coe_fn_coe DistribMulActionHom.coe_fn_coe
+-/
 
+#print DistribMulActionHom.coe_fn_coe' /-
 @[norm_cast]
 theorem coe_fn_coe' (f : A →+[M] B) : ((f : A →[M] B) : A → B) = f :=
   rfl
 #align distrib_mul_action_hom.coe_fn_coe' DistribMulActionHom.coe_fn_coe'
+-/
 
+#print DistribMulActionHom.ext /-
 @[ext]
 theorem ext : ∀ {f g : A →+[M] B}, (∀ x, f x = g x) → f = g :=
   FunLike.ext
 #align distrib_mul_action_hom.ext DistribMulActionHom.ext
+-/
 
+#print DistribMulActionHom.ext_iff /-
 theorem ext_iff {f g : A →+[M] B} : f = g ↔ ∀ x, f x = g x :=
   FunLike.ext_iff
 #align distrib_mul_action_hom.ext_iff DistribMulActionHom.ext_iff
+-/
 
+#print DistribMulActionHom.congr_fun /-
 protected theorem congr_fun {f g : A →+[M] B} (h : f = g) (x : A) : f x = g x :=
   FunLike.congr_fun h _
 #align distrib_mul_action_hom.congr_fun DistribMulActionHom.congr_fun
+-/
 
+#print DistribMulActionHom.toMulActionHom_injective /-
 theorem toMulActionHom_injective {f g : A →+[M] B} (h : (f : A →[M] B) = (g : A →[M] B)) : f = g :=
   by ext a; exact MulActionHom.congr_fun h a
 #align distrib_mul_action_hom.to_mul_action_hom_injective DistribMulActionHom.toMulActionHom_injective
+-/
 
+#print DistribMulActionHom.toAddMonoidHom_injective /-
 theorem toAddMonoidHom_injective {f g : A →+[M] B} (h : (f : A →+ B) = (g : A →+ B)) : f = g := by
   ext a; exact AddMonoidHom.congr_fun h a
 #align distrib_mul_action_hom.to_add_monoid_hom_injective DistribMulActionHom.toAddMonoidHom_injective
+-/
 
+#print DistribMulActionHom.map_zero /-
 protected theorem map_zero (f : A →+[M] B) : f 0 = 0 :=
   map_zero _
 #align distrib_mul_action_hom.map_zero DistribMulActionHom.map_zero
+-/
 
+#print DistribMulActionHom.map_add /-
 protected theorem map_add (f : A →+[M] B) (x y : A) : f (x + y) = f x + f y :=
   map_add _ _ _
 #align distrib_mul_action_hom.map_add DistribMulActionHom.map_add
+-/
 
+#print DistribMulActionHom.map_neg /-
 protected theorem map_neg (f : A' →+[M] B') (x : A') : f (-x) = -f x :=
   map_neg _ _
 #align distrib_mul_action_hom.map_neg DistribMulActionHom.map_neg
+-/
 
+#print DistribMulActionHom.map_sub /-
 protected theorem map_sub (f : A' →+[M] B') (x y : A') : f (x - y) = f x - f y :=
   map_sub _ _ _
 #align distrib_mul_action_hom.map_sub DistribMulActionHom.map_sub
+-/
 
+#print DistribMulActionHom.map_smul /-
 protected theorem map_smul (f : A →+[M] B) (m : M) (x : A) : f (m • x) = m • f x :=
   map_smul _ _ _
 #align distrib_mul_action_hom.map_smul DistribMulActionHom.map_smul
+-/
 
 variable (M) {A}
 
@@ -312,10 +352,12 @@ protected def id : A →+[M] A :=
 #align distrib_mul_action_hom.id DistribMulActionHom.id
 -/
 
+#print DistribMulActionHom.id_apply /-
 @[simp]
 theorem id_apply (x : A) : DistribMulActionHom.id M x = x :=
   rfl
 #align distrib_mul_action_hom.id_apply DistribMulActionHom.id_apply
+-/
 
 variable {M A B C}
 
@@ -325,23 +367,31 @@ instance : Zero (A →+[M] B) :=
 instance : One (A →+[M] A) :=
   ⟨DistribMulActionHom.id M⟩
 
+#print DistribMulActionHom.coe_zero /-
 @[simp]
 theorem coe_zero : ((0 : A →+[M] B) : A → B) = 0 :=
   rfl
 #align distrib_mul_action_hom.coe_zero DistribMulActionHom.coe_zero
+-/
 
+#print DistribMulActionHom.coe_one /-
 @[simp]
 theorem coe_one : ((1 : A →+[M] A) : A → A) = id :=
   rfl
 #align distrib_mul_action_hom.coe_one DistribMulActionHom.coe_one
+-/
 
+#print DistribMulActionHom.zero_apply /-
 theorem zero_apply (a : A) : (0 : A →+[M] B) a = 0 :=
   rfl
 #align distrib_mul_action_hom.zero_apply DistribMulActionHom.zero_apply
+-/
 
+#print DistribMulActionHom.one_apply /-
 theorem one_apply (a : A) : (1 : A →+[M] A) a = a :=
   rfl
 #align distrib_mul_action_hom.one_apply DistribMulActionHom.one_apply
+-/
 
 instance : Inhabited (A →+[M] B) :=
   ⟨0⟩
@@ -354,40 +404,52 @@ def comp (g : B →+[M] C) (f : A →+[M] B) : A →+[M] C :=
 #align distrib_mul_action_hom.comp DistribMulActionHom.comp
 -/
 
+#print DistribMulActionHom.comp_apply /-
 @[simp]
 theorem comp_apply (g : B →+[M] C) (f : A →+[M] B) (x : A) : g.comp f x = g (f x) :=
   rfl
 #align distrib_mul_action_hom.comp_apply DistribMulActionHom.comp_apply
+-/
 
+#print DistribMulActionHom.id_comp /-
 @[simp]
 theorem id_comp (f : A →+[M] B) : (DistribMulActionHom.id M).comp f = f :=
   ext fun x => by rw [comp_apply, id_apply]
 #align distrib_mul_action_hom.id_comp DistribMulActionHom.id_comp
+-/
 
+#print DistribMulActionHom.comp_id /-
 @[simp]
 theorem comp_id (f : A →+[M] B) : f.comp (DistribMulActionHom.id M) = f :=
   ext fun x => by rw [comp_apply, id_apply]
 #align distrib_mul_action_hom.comp_id DistribMulActionHom.comp_id
+-/
 
+#print DistribMulActionHom.inverse /-
 /-- The inverse of a bijective `distrib_mul_action_hom` is a `distrib_mul_action_hom`. -/
 @[simps]
 def inverse (f : A →+[M] B) (g : B → A) (h₁ : Function.LeftInverse g f)
     (h₂ : Function.RightInverse g f) : B →+[M] A :=
   { (f : A →+ B).inverse g h₁ h₂, (f : A →[M] B).inverse g h₁ h₂ with toFun := g }
 #align distrib_mul_action_hom.inverse DistribMulActionHom.inverse
+-/
 
 section Semiring
 
 variable {R M'} [AddMonoid M'] [DistribMulAction R M']
 
+#print DistribMulActionHom.ext_ring /-
 @[ext]
 theorem ext_ring {f g : R →+[R] M'} (h : f 1 = g 1) : f = g := by ext x;
   rw [← mul_one x, ← smul_eq_mul R, f.map_smul, g.map_smul, h]
 #align distrib_mul_action_hom.ext_ring DistribMulActionHom.ext_ring
+-/
 
+#print DistribMulActionHom.ext_ring_iff /-
 theorem ext_ring_iff {f g : R →+[R] M'} : f = g ↔ f 1 = g 1 :=
   ⟨fun h => h ▸ rfl, ext_ring⟩
 #align distrib_mul_action_hom.ext_ring_iff DistribMulActionHom.ext_ring_iff
+-/
 
 end Semiring
 
@@ -406,7 +468,6 @@ add_decl_doc MulSemiringActionHom.toRingHom
 /-- Reinterpret an equivariant ring homomorphism as an equivariant additive monoid homomorphism. -/
 add_decl_doc MulSemiringActionHom.toDistribMulActionHom
 
--- mathport name: «expr →+*[ ] »
 notation:25 R " →+*[" M:25 "] " S:0 => MulSemiringActionHom M R S
 
 #print MulSemiringActionHomClass /-
@@ -448,52 +509,74 @@ instance : MulSemiringActionHomClass (R →+*[M] S) M R S
 
 variable {M R S}
 
+#print MulSemiringActionHom.coe_fn_coe /-
 @[norm_cast]
 theorem coe_fn_coe (f : R →+*[M] S) : ((f : R →+* S) : R → S) = f :=
   rfl
 #align mul_semiring_action_hom.coe_fn_coe MulSemiringActionHom.coe_fn_coe
+-/
 
+#print MulSemiringActionHom.coe_fn_coe' /-
 @[norm_cast]
 theorem coe_fn_coe' (f : R →+*[M] S) : ((f : R →+[M] S) : R → S) = f :=
   rfl
 #align mul_semiring_action_hom.coe_fn_coe' MulSemiringActionHom.coe_fn_coe'
+-/
 
+#print MulSemiringActionHom.ext /-
 @[ext]
 theorem ext : ∀ {f g : R →+*[M] S}, (∀ x, f x = g x) → f = g :=
   FunLike.ext
 #align mul_semiring_action_hom.ext MulSemiringActionHom.ext
+-/
 
+#print MulSemiringActionHom.ext_iff /-
 theorem ext_iff {f g : R →+*[M] S} : f = g ↔ ∀ x, f x = g x :=
   FunLike.ext_iff
 #align mul_semiring_action_hom.ext_iff MulSemiringActionHom.ext_iff
+-/
 
+#print MulSemiringActionHom.map_zero /-
 protected theorem map_zero (f : R →+*[M] S) : f 0 = 0 :=
   map_zero _
 #align mul_semiring_action_hom.map_zero MulSemiringActionHom.map_zero
+-/
 
+#print MulSemiringActionHom.map_add /-
 protected theorem map_add (f : R →+*[M] S) (x y : R) : f (x + y) = f x + f y :=
   map_add _ _ _
 #align mul_semiring_action_hom.map_add MulSemiringActionHom.map_add
+-/
 
+#print MulSemiringActionHom.map_neg /-
 protected theorem map_neg (f : R' →+*[M] S') (x : R') : f (-x) = -f x :=
   map_neg _ _
 #align mul_semiring_action_hom.map_neg MulSemiringActionHom.map_neg
+-/
 
+#print MulSemiringActionHom.map_sub /-
 protected theorem map_sub (f : R' →+*[M] S') (x y : R') : f (x - y) = f x - f y :=
   map_sub _ _ _
 #align mul_semiring_action_hom.map_sub MulSemiringActionHom.map_sub
+-/
 
+#print MulSemiringActionHom.map_one /-
 protected theorem map_one (f : R →+*[M] S) : f 1 = 1 :=
   map_one _
 #align mul_semiring_action_hom.map_one MulSemiringActionHom.map_one
+-/
 
+#print MulSemiringActionHom.map_mul /-
 protected theorem map_mul (f : R →+*[M] S) (x y : R) : f (x * y) = f x * f y :=
   map_mul _ _ _
 #align mul_semiring_action_hom.map_mul MulSemiringActionHom.map_mul
+-/
 
+#print MulSemiringActionHom.map_smul /-
 protected theorem map_smul (f : R →+*[M] S) (m : M) (x : R) : f (m • x) = m • f x :=
   map_smul _ _ _
 #align mul_semiring_action_hom.map_smul MulSemiringActionHom.map_smul
+-/
 
 variable (M) {R}
 
@@ -504,10 +587,12 @@ protected def id : R →+*[M] R :=
 #align mul_semiring_action_hom.id MulSemiringActionHom.id
 -/
 
+#print MulSemiringActionHom.id_apply /-
 @[simp]
 theorem id_apply (x : R) : MulSemiringActionHom.id M x = x :=
   rfl
 #align mul_semiring_action_hom.id_apply MulSemiringActionHom.id_apply
+-/
 
 variable {M R S T}
 
@@ -519,20 +604,26 @@ def comp (g : S →+*[M] T) (f : R →+*[M] S) : R →+*[M] T :=
 #align mul_semiring_action_hom.comp MulSemiringActionHom.comp
 -/
 
+#print MulSemiringActionHom.comp_apply /-
 @[simp]
 theorem comp_apply (g : S →+*[M] T) (f : R →+*[M] S) (x : R) : g.comp f x = g (f x) :=
   rfl
 #align mul_semiring_action_hom.comp_apply MulSemiringActionHom.comp_apply
+-/
 
+#print MulSemiringActionHom.id_comp /-
 @[simp]
 theorem id_comp (f : R →+*[M] S) : (MulSemiringActionHom.id M).comp f = f :=
   ext fun x => by rw [comp_apply, id_apply]
 #align mul_semiring_action_hom.id_comp MulSemiringActionHom.id_comp
+-/
 
+#print MulSemiringActionHom.comp_id /-
 @[simp]
 theorem comp_id (f : R →+*[M] S) : f.comp (MulSemiringActionHom.id M) = f :=
   ext fun x => by rw [comp_apply, id_apply]
 #align mul_semiring_action_hom.comp_id MulSemiringActionHom.comp_id
+-/
 
 end MulSemiringActionHom
 
Diff
@@ -159,8 +159,7 @@ def comp (g : Y →[M'] Z) (f : X →[M'] Y) : X →[M'] Z :=
   ⟨g ∘ f, fun m x =>
     calc
       g (f (m • x)) = g (m • f x) := by rw [f.map_smul]
-      _ = m • g (f x) := g.map_smul _ _
-      ⟩
+      _ = m • g (f x) := g.map_smul _ _⟩
 #align mul_action_hom.comp MulActionHom.comp
 -/
 
@@ -192,7 +191,6 @@ def inverse (f : A →[M] B) (g : B → A) (h₁ : Function.LeftInverse g f)
       g (m • x) = g (m • f (g x)) := by rw [h₂]
       _ = g (f (m • g x)) := by rw [f.map_smul]
       _ = m • g x := by rw [h₁]
-      
 #align mul_action_hom.inverse MulActionHom.inverse
 
 end MulActionHom
Diff
@@ -93,7 +93,7 @@ scalar multiplication by `M`.
 
 You should extend this class when you extend `mul_action_hom`. -/
 class SMulHomClass (F : Type _) (M X Y : outParam <| Type _) [SMul M X] [SMul M Y] extends
-  FunLike F X fun _ => Y where
+    FunLike F X fun _ => Y where
   map_smul : ∀ (f : F) (c : M) (x : X), f (c • x) = c • f x
 #align smul_hom_class SMulHomClass
 -/
@@ -218,8 +218,8 @@ the additive monoid structure and scalar multiplication by `M`.
 
 You should extend this class when you extend `distrib_mul_action_hom`. -/
 class DistribMulActionHomClass (F : Type _) (M A B : outParam <| Type _) [Monoid M] [AddMonoid A]
-  [AddMonoid B] [DistribMulAction M A] [DistribMulAction M B] extends SMulHomClass F M A B,
-  AddMonoidHomClass F A B
+    [AddMonoid B] [DistribMulAction M A] [DistribMulAction M B] extends SMulHomClass F M A B,
+    AddMonoidHomClass F A B
 #align distrib_mul_action_hom_class DistribMulActionHomClass
 -/
 
@@ -417,8 +417,8 @@ the ring structure and scalar multiplication by `M`.
 
 You should extend this class when you extend `mul_semiring_action_hom`. -/
 class MulSemiringActionHomClass (F : Type _) (M R S : outParam <| Type _) [Monoid M] [Semiring R]
-  [Semiring S] [DistribMulAction M R] [DistribMulAction M S] extends
-  DistribMulActionHomClass F M R S, RingHomClass F R S
+    [Semiring S] [DistribMulAction M R] [DistribMulAction M S] extends
+    DistribMulActionHomClass F M R S, RingHomClass F R S
 #align mul_semiring_action_hom_class MulSemiringActionHomClass
 -/
 
Diff
@@ -228,17 +228,13 @@ attribute [nolint dangerous_instance] DistribMulActionHomClass.toAddMonoidHomCla
 
 namespace DistribMulActionHom
 
-/- warning: distrib_mul_action_hom.has_coe clashes with [anonymous] -> [anonymous]
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.has_coe [anonymous]ₓ'. -/
-instance [anonymous] : Coe (A →+[M] B) (A →+ B) :=
+instance hasCoe : Coe (A →+[M] B) (A →+ B) :=
   ⟨toAddMonoidHom⟩
-#align distrib_mul_action_hom.has_coe [anonymous]
+#align distrib_mul_action_hom.has_coe DistribMulActionHom.hasCoe
 
-/- warning: distrib_mul_action_hom.has_coe' clashes with [anonymous] -> [anonymous]
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.has_coe' [anonymous]ₓ'. -/
-instance [anonymous] : Coe (A →+[M] B) (A →[M] B) :=
+instance hasCoe' : Coe (A →+[M] B) (A →[M] B) :=
   ⟨toMulActionHom⟩
-#align distrib_mul_action_hom.has_coe' [anonymous]
+#align distrib_mul_action_hom.has_coe' DistribMulActionHom.hasCoe'
 
 instance : CoeFun (A →+[M] B) fun _ => A → B :=
   ⟨toFun⟩
@@ -318,12 +314,10 @@ protected def id : A →+[M] A :=
 #align distrib_mul_action_hom.id DistribMulActionHom.id
 -/
 
-#print DistribMulActionHom.id_apply /-
 @[simp]
 theorem id_apply (x : A) : DistribMulActionHom.id M x = x :=
   rfl
 #align distrib_mul_action_hom.id_apply DistribMulActionHom.id_apply
--/
 
 variable {M A B C}
 
@@ -338,24 +332,18 @@ theorem coe_zero : ((0 : A →+[M] B) : A → B) = 0 :=
   rfl
 #align distrib_mul_action_hom.coe_zero DistribMulActionHom.coe_zero
 
-#print DistribMulActionHom.coe_one /-
 @[simp]
 theorem coe_one : ((1 : A →+[M] A) : A → A) = id :=
   rfl
 #align distrib_mul_action_hom.coe_one DistribMulActionHom.coe_one
--/
 
-#print DistribMulActionHom.zero_apply /-
 theorem zero_apply (a : A) : (0 : A →+[M] B) a = 0 :=
   rfl
 #align distrib_mul_action_hom.zero_apply DistribMulActionHom.zero_apply
--/
 
-#print DistribMulActionHom.one_apply /-
 theorem one_apply (a : A) : (1 : A →+[M] A) a = a :=
   rfl
 #align distrib_mul_action_hom.one_apply DistribMulActionHom.one_apply
--/
 
 instance : Inhabited (A →+[M] B) :=
   ⟨0⟩
@@ -383,31 +371,25 @@ theorem comp_id (f : A →+[M] B) : f.comp (DistribMulActionHom.id M) = f :=
   ext fun x => by rw [comp_apply, id_apply]
 #align distrib_mul_action_hom.comp_id DistribMulActionHom.comp_id
 
-#print DistribMulActionHom.inverse /-
 /-- The inverse of a bijective `distrib_mul_action_hom` is a `distrib_mul_action_hom`. -/
 @[simps]
 def inverse (f : A →+[M] B) (g : B → A) (h₁ : Function.LeftInverse g f)
     (h₂ : Function.RightInverse g f) : B →+[M] A :=
   { (f : A →+ B).inverse g h₁ h₂, (f : A →[M] B).inverse g h₁ h₂ with toFun := g }
 #align distrib_mul_action_hom.inverse DistribMulActionHom.inverse
--/
 
 section Semiring
 
 variable {R M'} [AddMonoid M'] [DistribMulAction R M']
 
-#print DistribMulActionHom.ext_ring /-
 @[ext]
 theorem ext_ring {f g : R →+[R] M'} (h : f 1 = g 1) : f = g := by ext x;
   rw [← mul_one x, ← smul_eq_mul R, f.map_smul, g.map_smul, h]
 #align distrib_mul_action_hom.ext_ring DistribMulActionHom.ext_ring
--/
 
-#print DistribMulActionHom.ext_ring_iff /-
 theorem ext_ring_iff {f g : R →+[R] M'} : f = g ↔ f 1 = g 1 :=
   ⟨fun h => h ▸ rfl, ext_ring⟩
 #align distrib_mul_action_hom.ext_ring_iff DistribMulActionHom.ext_ring_iff
--/
 
 end Semiring
 
@@ -445,17 +427,13 @@ attribute [nolint dangerous_instance] MulSemiringActionHomClass.toRingHomClass
 
 namespace MulSemiringActionHom
 
-/- warning: mul_semiring_action_hom.has_coe clashes with [anonymous] -> [anonymous]
-Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.has_coe [anonymous]ₓ'. -/
-instance [anonymous] : Coe (R →+*[M] S) (R →+* S) :=
+instance hasCoe : Coe (R →+*[M] S) (R →+* S) :=
   ⟨toRingHom⟩
-#align mul_semiring_action_hom.has_coe [anonymous]
+#align mul_semiring_action_hom.has_coe MulSemiringActionHom.hasCoe
 
-/- warning: mul_semiring_action_hom.has_coe' clashes with [anonymous] -> [anonymous]
-Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.has_coe' [anonymous]ₓ'. -/
-instance [anonymous] : Coe (R →+*[M] S) (R →+[M] S) :=
+instance hasCoe' : Coe (R →+*[M] S) (R →+[M] S) :=
   ⟨toDistribMulActionHom⟩
-#align mul_semiring_action_hom.has_coe' [anonymous]
+#align mul_semiring_action_hom.has_coe' MulSemiringActionHom.hasCoe'
 
 instance : CoeFun (R →+*[M] S) fun _ => R → S :=
   ⟨fun c => c.toFun⟩
@@ -528,12 +506,10 @@ protected def id : R →+*[M] R :=
 #align mul_semiring_action_hom.id MulSemiringActionHom.id
 -/
 
-#print MulSemiringActionHom.id_apply /-
 @[simp]
 theorem id_apply (x : R) : MulSemiringActionHom.id M x = x :=
   rfl
 #align mul_semiring_action_hom.id_apply MulSemiringActionHom.id_apply
--/
 
 variable {M R S T}
 
Diff
@@ -118,43 +118,19 @@ instance : SMulHomClass (X →[M'] Y) M' X Y
 
 variable {M M' X Y}
 
-/- warning: mul_action_hom.map_smul -> MulActionHom.map_smul is a dubious translation:
-lean 3 declaration is
-  forall {M' : Type.{u1}} {X : Type.{u2}} [_inst_1 : SMul.{u1, u2} M' X] {Y : Type.{u3}} [_inst_2 : SMul.{u1, u3} M' Y] (f : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (m : M') (x : X), Eq.{succ u3} Y (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (fun (_x : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) => X -> Y) ([anonymous].{u1, u2, u3} M' X _inst_1 Y _inst_2) f (SMul.smul.{u1, u2} M' X _inst_1 m x)) (SMul.smul.{u1, u3} M' Y _inst_2 m (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (fun (_x : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) => X -> Y) ([anonymous].{u1, u2, u3} M' X _inst_1 Y _inst_2) f x))
-but is expected to have type
-  forall {M' : Type.{u3}} {X : Type.{u2}} [_inst_1 : SMul.{u3, u2} M' X] {Y : Type.{u1}} [_inst_2 : SMul.{u3, u1} M' Y] (f : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) (m : M') (x : X), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) (HSMul.hSMul.{u3, u2, u2} M' X X (instHSMul.{u3, u2} M' X _inst_1) m x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) f (HSMul.hSMul.{u3, u2, u2} M' X X (instHSMul.{u3, u2} M' X _inst_1) m x)) (HSMul.hSMul.{u3, u1, u1} M' ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) x) (instHSMul.{u3, u1} M' ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) x) _inst_2) m (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) f x))
-Case conversion may be inaccurate. Consider using '#align mul_action_hom.map_smul MulActionHom.map_smulₓ'. -/
 protected theorem map_smul (f : X →[M'] Y) (m : M') (x : X) : f (m • x) = m • f x :=
   map_smul _ _ _
 #align mul_action_hom.map_smul MulActionHom.map_smul
 
-/- warning: mul_action_hom.ext -> MulActionHom.ext is a dubious translation:
-lean 3 declaration is
-  forall {M' : Type.{u1}} {X : Type.{u2}} [_inst_1 : SMul.{u1, u2} M' X] {Y : Type.{u3}} [_inst_2 : SMul.{u1, u3} M' Y] {f : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2} {g : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2}, (forall (x : X), Eq.{succ u3} Y (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (fun (_x : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) => X -> Y) ([anonymous].{u1, u2, u3} M' X _inst_1 Y _inst_2) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (fun (_x : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) => X -> Y) ([anonymous].{u1, u2, u3} M' X _inst_1 Y _inst_2) g x)) -> (Eq.{max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) f g)
-but is expected to have type
-  forall {M' : Type.{u3}} {X : Type.{u2}} [_inst_1 : SMul.{u3, u2} M' X] {Y : Type.{u1}} [_inst_2 : SMul.{u3, u1} M' Y] {f : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2} {g : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2}, (forall (x : X), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) g x)) -> (Eq.{max (succ u2) (succ u1)} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) f g)
-Case conversion may be inaccurate. Consider using '#align mul_action_hom.ext MulActionHom.extₓ'. -/
 @[ext]
 theorem ext : ∀ {f g : X →[M'] Y}, (∀ x, f x = g x) → f = g :=
   FunLike.ext
 #align mul_action_hom.ext MulActionHom.ext
 
-/- warning: mul_action_hom.ext_iff -> MulActionHom.ext_iff is a dubious translation:
-lean 3 declaration is
-  forall {M' : Type.{u1}} {X : Type.{u2}} [_inst_1 : SMul.{u1, u2} M' X] {Y : Type.{u3}} [_inst_2 : SMul.{u1, u3} M' Y] {f : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2} {g : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2}, Iff (Eq.{max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) f g) (forall (x : X), Eq.{succ u3} Y (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (fun (_x : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) => X -> Y) ([anonymous].{u1, u2, u3} M' X _inst_1 Y _inst_2) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (fun (_x : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) => X -> Y) ([anonymous].{u1, u2, u3} M' X _inst_1 Y _inst_2) g x))
-but is expected to have type
-  forall {M' : Type.{u3}} {X : Type.{u2}} [_inst_1 : SMul.{u3, u2} M' X] {Y : Type.{u1}} [_inst_2 : SMul.{u3, u1} M' Y] {f : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2} {g : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2}, Iff (Eq.{max (succ u2) (succ u1)} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) f g) (forall (x : X), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) g x))
-Case conversion may be inaccurate. Consider using '#align mul_action_hom.ext_iff MulActionHom.ext_iffₓ'. -/
 theorem ext_iff {f g : X →[M'] Y} : f = g ↔ ∀ x, f x = g x :=
   FunLike.ext_iff
 #align mul_action_hom.ext_iff MulActionHom.ext_iff
 
-/- warning: mul_action_hom.congr_fun -> MulActionHom.congr_fun is a dubious translation:
-lean 3 declaration is
-  forall {M' : Type.{u1}} {X : Type.{u2}} [_inst_1 : SMul.{u1, u2} M' X] {Y : Type.{u3}} [_inst_2 : SMul.{u1, u3} M' Y] {f : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2} {g : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2}, (Eq.{max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) f g) -> (forall (x : X), Eq.{succ u3} Y (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (fun (_x : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) => X -> Y) ([anonymous].{u1, u2, u3} M' X _inst_1 Y _inst_2) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (fun (_x : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) => X -> Y) ([anonymous].{u1, u2, u3} M' X _inst_1 Y _inst_2) g x))
-but is expected to have type
-  forall {M' : Type.{u3}} {X : Type.{u2}} [_inst_1 : SMul.{u3, u2} M' X] {Y : Type.{u1}} [_inst_2 : SMul.{u3, u1} M' Y] {f : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2} {g : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2}, (Eq.{max (succ u2) (succ u1)} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) f g) -> (forall (x : X), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) g x))
-Case conversion may be inaccurate. Consider using '#align mul_action_hom.congr_fun MulActionHom.congr_funₓ'. -/
 protected theorem congr_fun {f g : X →[M'] Y} (h : f = g) (x : X) : f x = g x :=
   FunLike.congr_fun h _
 #align mul_action_hom.congr_fun MulActionHom.congr_fun
@@ -188,34 +164,16 @@ def comp (g : Y →[M'] Z) (f : X →[M'] Y) : X →[M'] Z :=
 #align mul_action_hom.comp MulActionHom.comp
 -/
 
-/- warning: mul_action_hom.comp_apply -> MulActionHom.comp_apply is a dubious translation:
-lean 3 declaration is
-  forall {M' : Type.{u1}} {X : Type.{u2}} [_inst_1 : SMul.{u1, u2} M' X] {Y : Type.{u3}} [_inst_2 : SMul.{u1, u3} M' Y] {Z : Type.{u4}} [_inst_3 : SMul.{u1, u4} M' Z] (g : MulActionHom.{u1, u3, u4} M' Y _inst_2 Z _inst_3) (f : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (x : X), Eq.{succ u4} Z (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (MulActionHom.{u1, u2, u4} M' X _inst_1 Z _inst_3) (fun (_x : MulActionHom.{u1, u2, u4} M' X _inst_1 Z _inst_3) => X -> Z) ([anonymous].{u1, u2, u4} M' X _inst_1 Z _inst_3) (MulActionHom.comp.{u1, u2, u3, u4} M' X _inst_1 Y _inst_2 Z _inst_3 g f) x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (MulActionHom.{u1, u3, u4} M' Y _inst_2 Z _inst_3) (fun (_x : MulActionHom.{u1, u3, u4} M' Y _inst_2 Z _inst_3) => Y -> Z) ([anonymous].{u1, u3, u4} M' Y _inst_2 Z _inst_3) g (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (fun (_x : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) => X -> Y) ([anonymous].{u1, u2, u3} M' X _inst_1 Y _inst_2) f x))
-but is expected to have type
-  forall {M' : Type.{u4}} {X : Type.{u1}} [_inst_1 : SMul.{u4, u1} M' X] {Y : Type.{u3}} [_inst_2 : SMul.{u4, u3} M' Y] {Z : Type.{u2}} [_inst_3 : SMul.{u4, u2} M' Z] (g : MulActionHom.{u4, u3, u2} M' Y _inst_2 Z _inst_3) (f : MulActionHom.{u4, u1, u3} M' X _inst_1 Y _inst_2) (x : X), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Z) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulActionHom.{u4, u1, u2} M' X _inst_1 Z _inst_3) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Z) _x) (SMulHomClass.toFunLike.{max u1 u2, u4, u1, u2} (MulActionHom.{u4, u1, u2} M' X _inst_1 Z _inst_3) M' X Z _inst_1 _inst_3 (instSMulHomClassMulActionHom.{u4, u1, u2} M' X _inst_1 Z _inst_3)) (MulActionHom.comp.{u4, u1, u3, u2} M' X _inst_1 Y _inst_2 Z _inst_3 g f) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (MulActionHom.{u4, u3, u2} M' Y _inst_2 Z _inst_3) Y (fun (_x : Y) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Y) => Z) _x) (SMulHomClass.toFunLike.{max u3 u2, u4, u3, u2} (MulActionHom.{u4, u3, u2} M' Y _inst_2 Z _inst_3) M' Y Z _inst_2 _inst_3 (instSMulHomClassMulActionHom.{u4, u3, u2} M' Y _inst_2 Z _inst_3)) g (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (MulActionHom.{u4, u1, u3} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) _x) (SMulHomClass.toFunLike.{max u1 u3, u4, u1, u3} (MulActionHom.{u4, u1, u3} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u4, u1, u3} M' X _inst_1 Y _inst_2)) f x))
-Case conversion may be inaccurate. Consider using '#align mul_action_hom.comp_apply MulActionHom.comp_applyₓ'. -/
 @[simp]
 theorem comp_apply (g : Y →[M'] Z) (f : X →[M'] Y) (x : X) : g.comp f x = g (f x) :=
   rfl
 #align mul_action_hom.comp_apply MulActionHom.comp_apply
 
-/- warning: mul_action_hom.id_comp -> MulActionHom.id_comp is a dubious translation:
-lean 3 declaration is
-  forall {M' : Type.{u1}} {X : Type.{u2}} [_inst_1 : SMul.{u1, u2} M' X] {Y : Type.{u3}} [_inst_2 : SMul.{u1, u3} M' Y] (f : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2), Eq.{max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (MulActionHom.comp.{u1, u2, u3, u3} M' X _inst_1 Y _inst_2 Y _inst_2 (MulActionHom.id.{u1, u3} M' Y _inst_2) f) f
-but is expected to have type
-  forall {M' : Type.{u3}} {X : Type.{u2}} [_inst_1 : SMul.{u3, u2} M' X] {Y : Type.{u1}} [_inst_2 : SMul.{u3, u1} M' Y] (f : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2), Eq.{max (succ u2) (succ u1)} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) (MulActionHom.comp.{u3, u2, u1, u1} M' X _inst_1 Y _inst_2 Y _inst_2 (MulActionHom.id.{u3, u1} M' Y _inst_2) f) f
-Case conversion may be inaccurate. Consider using '#align mul_action_hom.id_comp MulActionHom.id_compₓ'. -/
 @[simp]
 theorem id_comp (f : X →[M'] Y) : (MulActionHom.id M').comp f = f :=
   ext fun x => by rw [comp_apply, id_apply]
 #align mul_action_hom.id_comp MulActionHom.id_comp
 
-/- warning: mul_action_hom.comp_id -> MulActionHom.comp_id is a dubious translation:
-lean 3 declaration is
-  forall {M' : Type.{u1}} {X : Type.{u2}} [_inst_1 : SMul.{u1, u2} M' X] {Y : Type.{u3}} [_inst_2 : SMul.{u1, u3} M' Y] (f : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2), Eq.{max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (MulActionHom.comp.{u1, u2, u2, u3} M' X _inst_1 X _inst_1 Y _inst_2 f (MulActionHom.id.{u1, u2} M' X _inst_1)) f
-but is expected to have type
-  forall {M' : Type.{u3}} {X : Type.{u2}} [_inst_1 : SMul.{u3, u2} M' X] {Y : Type.{u1}} [_inst_2 : SMul.{u3, u1} M' Y] (f : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2), Eq.{max (succ u2) (succ u1)} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) (MulActionHom.comp.{u3, u2, u2, u1} M' X _inst_1 X _inst_1 Y _inst_2 f (MulActionHom.id.{u3, u2} M' X _inst_1)) f
-Case conversion may be inaccurate. Consider using '#align mul_action_hom.comp_id MulActionHom.comp_idₓ'. -/
 @[simp]
 theorem comp_id (f : X →[M'] Y) : f.comp (MulActionHom.id M') = f :=
   ext fun x => by rw [comp_apply, id_apply]
@@ -223,9 +181,6 @@ theorem comp_id (f : X →[M'] Y) : f.comp (MulActionHom.id M') = f :=
 
 variable {A B}
 
-/- warning: mul_action_hom.inverse -> MulActionHom.inverse is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align mul_action_hom.inverse MulActionHom.inverseₓ'. -/
 /-- The inverse of a bijective equivariant map is equivariant. -/
 @[simps]
 def inverse (f : A →[M] B) (g : B → A) (h₁ : Function.LeftInverse g f)
@@ -274,22 +229,12 @@ attribute [nolint dangerous_instance] DistribMulActionHomClass.toAddMonoidHomCla
 namespace DistribMulActionHom
 
 /- warning: distrib_mul_action_hom.has_coe clashes with [anonymous] -> [anonymous]
-warning: distrib_mul_action_hom.has_coe -> [anonymous] is a dubious translation:
-lean 3 declaration is
-  forall (M : Type.{u_5}) [_inst_4 : Monoid.{u_5} M] (A : Type.{u_6}) [_inst_5 : AddMonoid.{u_6} A] [_inst_6 : DistribMulAction.{u_5, u_6} M A _inst_4 _inst_5] (B : Type.{u_8}) [_inst_9 : AddMonoid.{u_8} B] [_inst_10 : DistribMulAction.{u_5, u_8} M B _inst_4 _inst_9], Coe.{max (succ u_6) (succ u_8), max (succ u_8) (succ u_6)} (DistribMulActionHom.{u_5, u_6, u_8} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u_6, u_8} A B (AddMonoid.toAddZeroClass.{u_6} A _inst_5) (AddMonoid.toAddZeroClass.{u_8} B _inst_9))
-but is expected to have type
-  forall {M : Type.{u}} {_inst_4 : Type.{v}}, (Nat -> M -> _inst_4) -> Nat -> (List.{u} M) -> (List.{v} _inst_4)
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.has_coe [anonymous]ₓ'. -/
 instance [anonymous] : Coe (A →+[M] B) (A →+ B) :=
   ⟨toAddMonoidHom⟩
 #align distrib_mul_action_hom.has_coe [anonymous]
 
 /- warning: distrib_mul_action_hom.has_coe' clashes with [anonymous] -> [anonymous]
-warning: distrib_mul_action_hom.has_coe' -> [anonymous] is a dubious translation:
-lean 3 declaration is
-  forall (M : Type.{u_5}) [_inst_4 : Monoid.{u_5} M] (A : Type.{u_6}) [_inst_5 : AddMonoid.{u_6} A] [_inst_6 : DistribMulAction.{u_5, u_6} M A _inst_4 _inst_5] (B : Type.{u_8}) [_inst_9 : AddMonoid.{u_8} B] [_inst_10 : DistribMulAction.{u_5, u_8} M B _inst_4 _inst_9], Coe.{max (succ u_6) (succ u_8), max (succ u_6) (succ u_8)} (DistribMulActionHom.{u_5, u_6, u_8} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u_5, u_6, u_8} M A (SMulZeroClass.toHasSmul.{u_5, u_6} M A (AddZeroClass.toHasZero.{u_6} A (AddMonoid.toAddZeroClass.{u_6} A _inst_5)) (DistribSMul.toSmulZeroClass.{u_5, u_6} M A (AddMonoid.toAddZeroClass.{u_6} A _inst_5) (DistribMulAction.toDistribSMul.{u_5, u_6} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u_5, u_8} M B (AddZeroClass.toHasZero.{u_8} B (AddMonoid.toAddZeroClass.{u_8} B _inst_9)) (DistribSMul.toSmulZeroClass.{u_5, u_8} M B (AddMonoid.toAddZeroClass.{u_8} B _inst_9) (DistribMulAction.toDistribSMul.{u_5, u_8} M B _inst_4 _inst_9 _inst_10))))
-but is expected to have type
-  forall {M : Type.{u}} {_inst_4 : Type.{v}}, (Nat -> M -> _inst_4) -> Nat -> (List.{u} M) -> (List.{v} _inst_4)
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.has_coe' [anonymous]ₓ'. -/
 instance [anonymous] : Coe (A →+[M] B) (A →[M] B) :=
   ⟨toMulActionHom⟩
@@ -308,97 +253,58 @@ instance : DistribMulActionHomClass (A →+[M] B) M A B
 
 variable {M A B}
 
-/- warning: distrib_mul_action_hom.to_fun_eq_coe -> DistribMulActionHom.toFun_eq_coe is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.to_fun_eq_coe DistribMulActionHom.toFun_eq_coeₓ'. -/
 @[simp]
 theorem toFun_eq_coe (f : A →+[M] B) : f.toFun = ⇑f :=
   rfl
 #align distrib_mul_action_hom.to_fun_eq_coe DistribMulActionHom.toFun_eq_coe
 
-/- warning: distrib_mul_action_hom.coe_fn_coe -> DistribMulActionHom.coe_fn_coe is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.coe_fn_coe DistribMulActionHom.coe_fn_coeₓ'. -/
 @[norm_cast]
 theorem coe_fn_coe (f : A →+[M] B) : ((f : A →+ B) : A → B) = f :=
   rfl
 #align distrib_mul_action_hom.coe_fn_coe DistribMulActionHom.coe_fn_coe
 
-/- warning: distrib_mul_action_hom.coe_fn_coe' -> DistribMulActionHom.coe_fn_coe' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.coe_fn_coe' DistribMulActionHom.coe_fn_coe'ₓ'. -/
 @[norm_cast]
 theorem coe_fn_coe' (f : A →+[M] B) : ((f : A →[M] B) : A → B) = f :=
   rfl
 #align distrib_mul_action_hom.coe_fn_coe' DistribMulActionHom.coe_fn_coe'
 
-/- warning: distrib_mul_action_hom.ext -> DistribMulActionHom.ext is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.ext DistribMulActionHom.extₓ'. -/
 @[ext]
 theorem ext : ∀ {f g : A →+[M] B}, (∀ x, f x = g x) → f = g :=
   FunLike.ext
 #align distrib_mul_action_hom.ext DistribMulActionHom.ext
 
-/- warning: distrib_mul_action_hom.ext_iff -> DistribMulActionHom.ext_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.ext_iff DistribMulActionHom.ext_iffₓ'. -/
 theorem ext_iff {f g : A →+[M] B} : f = g ↔ ∀ x, f x = g x :=
   FunLike.ext_iff
 #align distrib_mul_action_hom.ext_iff DistribMulActionHom.ext_iff
 
-/- warning: distrib_mul_action_hom.congr_fun -> DistribMulActionHom.congr_fun is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.congr_fun DistribMulActionHom.congr_funₓ'. -/
 protected theorem congr_fun {f g : A →+[M] B} (h : f = g) (x : A) : f x = g x :=
   FunLike.congr_fun h _
 #align distrib_mul_action_hom.congr_fun DistribMulActionHom.congr_fun
 
-/- warning: distrib_mul_action_hom.to_mul_action_hom_injective -> DistribMulActionHom.toMulActionHom_injective is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.to_mul_action_hom_injective DistribMulActionHom.toMulActionHom_injectiveₓ'. -/
 theorem toMulActionHom_injective {f g : A →+[M] B} (h : (f : A →[M] B) = (g : A →[M] B)) : f = g :=
   by ext a; exact MulActionHom.congr_fun h a
 #align distrib_mul_action_hom.to_mul_action_hom_injective DistribMulActionHom.toMulActionHom_injective
 
-/- warning: distrib_mul_action_hom.to_add_monoid_hom_injective -> DistribMulActionHom.toAddMonoidHom_injective is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.to_add_monoid_hom_injective DistribMulActionHom.toAddMonoidHom_injectiveₓ'. -/
 theorem toAddMonoidHom_injective {f g : A →+[M] B} (h : (f : A →+ B) = (g : A →+ B)) : f = g := by
   ext a; exact AddMonoidHom.congr_fun h a
 #align distrib_mul_action_hom.to_add_monoid_hom_injective DistribMulActionHom.toAddMonoidHom_injective
 
-/- warning: distrib_mul_action_hom.map_zero -> DistribMulActionHom.map_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.map_zero DistribMulActionHom.map_zeroₓ'. -/
 protected theorem map_zero (f : A →+[M] B) : f 0 = 0 :=
   map_zero _
 #align distrib_mul_action_hom.map_zero DistribMulActionHom.map_zero
 
-/- warning: distrib_mul_action_hom.map_add -> DistribMulActionHom.map_add is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.map_add DistribMulActionHom.map_addₓ'. -/
 protected theorem map_add (f : A →+[M] B) (x y : A) : f (x + y) = f x + f y :=
   map_add _ _ _
 #align distrib_mul_action_hom.map_add DistribMulActionHom.map_add
 
-/- warning: distrib_mul_action_hom.map_neg -> DistribMulActionHom.map_neg is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.map_neg DistribMulActionHom.map_negₓ'. -/
 protected theorem map_neg (f : A' →+[M] B') (x : A') : f (-x) = -f x :=
   map_neg _ _
 #align distrib_mul_action_hom.map_neg DistribMulActionHom.map_neg
 
-/- warning: distrib_mul_action_hom.map_sub -> DistribMulActionHom.map_sub is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.map_sub DistribMulActionHom.map_subₓ'. -/
 protected theorem map_sub (f : A' →+[M] B') (x y : A') : f (x - y) = f x - f y :=
   map_sub _ _ _
 #align distrib_mul_action_hom.map_sub DistribMulActionHom.map_sub
 
-/- warning: distrib_mul_action_hom.map_smul -> DistribMulActionHom.map_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.map_smul DistribMulActionHom.map_smulₓ'. -/
 protected theorem map_smul (f : A →+[M] B) (m : M) (x : A) : f (m • x) = m • f x :=
   map_smul _ _ _
 #align distrib_mul_action_hom.map_smul DistribMulActionHom.map_smul
@@ -427,9 +333,6 @@ instance : Zero (A →+[M] B) :=
 instance : One (A →+[M] A) :=
   ⟨DistribMulActionHom.id M⟩
 
-/- warning: distrib_mul_action_hom.coe_zero -> DistribMulActionHom.coe_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.coe_zero DistribMulActionHom.coe_zeroₓ'. -/
 @[simp]
 theorem coe_zero : ((0 : A →+[M] B) : A → B) = 0 :=
   rfl
@@ -465,31 +368,16 @@ def comp (g : B →+[M] C) (f : A →+[M] B) : A →+[M] C :=
 #align distrib_mul_action_hom.comp DistribMulActionHom.comp
 -/
 
-/- warning: distrib_mul_action_hom.comp_apply -> DistribMulActionHom.comp_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.comp_apply DistribMulActionHom.comp_applyₓ'. -/
 @[simp]
 theorem comp_apply (g : B →+[M] C) (f : A →+[M] B) (x : A) : g.comp f x = g (f x) :=
   rfl
 #align distrib_mul_action_hom.comp_apply DistribMulActionHom.comp_apply
 
-/- warning: distrib_mul_action_hom.id_comp -> DistribMulActionHom.id_comp is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (DistribMulActionHom.comp.{u1, u2, u3, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10 B _inst_9 _inst_10 (DistribMulActionHom.id.{u1, u3} M _inst_4 B _inst_9 _inst_10) f) f
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u1)} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (DistribMulActionHom.comp.{u3, u2, u1, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10 B _inst_9 _inst_10 (DistribMulActionHom.id.{u3, u1} M _inst_4 B _inst_9 _inst_10) f) f
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.id_comp DistribMulActionHom.id_compₓ'. -/
 @[simp]
 theorem id_comp (f : A →+[M] B) : (DistribMulActionHom.id M).comp f = f :=
   ext fun x => by rw [comp_apply, id_apply]
 #align distrib_mul_action_hom.id_comp DistribMulActionHom.id_comp
 
-/- warning: distrib_mul_action_hom.comp_id -> DistribMulActionHom.comp_id is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (DistribMulActionHom.comp.{u1, u2, u2, u3} M _inst_4 A _inst_5 _inst_6 A _inst_5 _inst_6 B _inst_9 _inst_10 f (DistribMulActionHom.id.{u1, u2} M _inst_4 A _inst_5 _inst_6)) f
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u1)} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (DistribMulActionHom.comp.{u3, u2, u2, u1} M _inst_4 A _inst_5 _inst_6 A _inst_5 _inst_6 B _inst_9 _inst_10 f (DistribMulActionHom.id.{u3, u2} M _inst_4 A _inst_5 _inst_6)) f
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.comp_id DistribMulActionHom.comp_idₓ'. -/
 @[simp]
 theorem comp_id (f : A →+[M] B) : f.comp (DistribMulActionHom.id M) = f :=
   ext fun x => by rw [comp_apply, id_apply]
@@ -558,22 +446,12 @@ attribute [nolint dangerous_instance] MulSemiringActionHomClass.toRingHomClass
 namespace MulSemiringActionHom
 
 /- warning: mul_semiring_action_hom.has_coe clashes with [anonymous] -> [anonymous]
-warning: mul_semiring_action_hom.has_coe -> [anonymous] is a dubious translation:
-lean 3 declaration is
-  forall (M : Type.{u_5}) [_inst_4 : Monoid.{u_5} M] (R : Type.{u_11}) [_inst_15 : Semiring.{u_11} R] [_inst_16 : MulSemiringAction.{u_5, u_11} M R _inst_4 _inst_15] (S : Type.{u_13}) [_inst_19 : Semiring.{u_13} S] [_inst_20 : MulSemiringAction.{u_5, u_13} M S _inst_4 _inst_19], Coe.{max (succ u_11) (succ u_13), max (succ u_11) (succ u_13)} (MulSemiringActionHom.{u_5, u_11, u_13} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u_11, u_13} R S (Semiring.toNonAssocSemiring.{u_11} R _inst_15) (Semiring.toNonAssocSemiring.{u_13} S _inst_19))
-but is expected to have type
-  forall {M : Type.{u}} {_inst_4 : Type.{v}}, (Nat -> M -> _inst_4) -> Nat -> (List.{u} M) -> (List.{v} _inst_4)
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.has_coe [anonymous]ₓ'. -/
 instance [anonymous] : Coe (R →+*[M] S) (R →+* S) :=
   ⟨toRingHom⟩
 #align mul_semiring_action_hom.has_coe [anonymous]
 
 /- warning: mul_semiring_action_hom.has_coe' clashes with [anonymous] -> [anonymous]
-warning: mul_semiring_action_hom.has_coe' -> [anonymous] is a dubious translation:
-lean 3 declaration is
-  forall (M : Type.{u_5}) [_inst_4 : Monoid.{u_5} M] (R : Type.{u_11}) [_inst_15 : Semiring.{u_11} R] [_inst_16 : MulSemiringAction.{u_5, u_11} M R _inst_4 _inst_15] (S : Type.{u_13}) [_inst_19 : Semiring.{u_13} S] [_inst_20 : MulSemiringAction.{u_5, u_13} M S _inst_4 _inst_19], Coe.{max (succ u_11) (succ u_13), max (succ u_11) (succ u_13)} (MulSemiringActionHom.{u_5, u_11, u_13} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (DistribMulActionHom.{u_5, u_11, u_13} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u_11} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u_11} R (NonAssocSemiring.toAddCommMonoidWithOne.{u_11} R (Semiring.toNonAssocSemiring.{u_11} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u_5, u_11} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u_13} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u_13} S (NonAssocSemiring.toAddCommMonoidWithOne.{u_13} S (Semiring.toNonAssocSemiring.{u_13} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u_5, u_13} M S _inst_4 _inst_19 _inst_20))
-but is expected to have type
-  forall {M : Type.{u}} {_inst_4 : Type.{v}}, (Nat -> M -> _inst_4) -> Nat -> (List.{u} M) -> (List.{v} _inst_4)
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.has_coe' [anonymous]ₓ'. -/
 instance [anonymous] : Coe (R →+*[M] S) (R →+[M] S) :=
   ⟨toDistribMulActionHom⟩
@@ -594,82 +472,49 @@ instance : MulSemiringActionHomClass (R →+*[M] S) M R S
 
 variable {M R S}
 
-/- warning: mul_semiring_action_hom.coe_fn_coe -> MulSemiringActionHom.coe_fn_coe is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.coe_fn_coe MulSemiringActionHom.coe_fn_coeₓ'. -/
 @[norm_cast]
 theorem coe_fn_coe (f : R →+*[M] S) : ((f : R →+* S) : R → S) = f :=
   rfl
 #align mul_semiring_action_hom.coe_fn_coe MulSemiringActionHom.coe_fn_coe
 
-/- warning: mul_semiring_action_hom.coe_fn_coe' -> MulSemiringActionHom.coe_fn_coe' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.coe_fn_coe' MulSemiringActionHom.coe_fn_coe'ₓ'. -/
 @[norm_cast]
 theorem coe_fn_coe' (f : R →+*[M] S) : ((f : R →+[M] S) : R → S) = f :=
   rfl
 #align mul_semiring_action_hom.coe_fn_coe' MulSemiringActionHom.coe_fn_coe'
 
-/- warning: mul_semiring_action_hom.ext -> MulSemiringActionHom.ext is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.ext MulSemiringActionHom.extₓ'. -/
 @[ext]
 theorem ext : ∀ {f g : R →+*[M] S}, (∀ x, f x = g x) → f = g :=
   FunLike.ext
 #align mul_semiring_action_hom.ext MulSemiringActionHom.ext
 
-/- warning: mul_semiring_action_hom.ext_iff -> MulSemiringActionHom.ext_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.ext_iff MulSemiringActionHom.ext_iffₓ'. -/
 theorem ext_iff {f g : R →+*[M] S} : f = g ↔ ∀ x, f x = g x :=
   FunLike.ext_iff
 #align mul_semiring_action_hom.ext_iff MulSemiringActionHom.ext_iff
 
-/- warning: mul_semiring_action_hom.map_zero -> MulSemiringActionHom.map_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_zero MulSemiringActionHom.map_zeroₓ'. -/
 protected theorem map_zero (f : R →+*[M] S) : f 0 = 0 :=
   map_zero _
 #align mul_semiring_action_hom.map_zero MulSemiringActionHom.map_zero
 
-/- warning: mul_semiring_action_hom.map_add -> MulSemiringActionHom.map_add is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_add MulSemiringActionHom.map_addₓ'. -/
 protected theorem map_add (f : R →+*[M] S) (x y : R) : f (x + y) = f x + f y :=
   map_add _ _ _
 #align mul_semiring_action_hom.map_add MulSemiringActionHom.map_add
 
-/- warning: mul_semiring_action_hom.map_neg -> MulSemiringActionHom.map_neg is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_neg MulSemiringActionHom.map_negₓ'. -/
 protected theorem map_neg (f : R' →+*[M] S') (x : R') : f (-x) = -f x :=
   map_neg _ _
 #align mul_semiring_action_hom.map_neg MulSemiringActionHom.map_neg
 
-/- warning: mul_semiring_action_hom.map_sub -> MulSemiringActionHom.map_sub is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_sub MulSemiringActionHom.map_subₓ'. -/
 protected theorem map_sub (f : R' →+*[M] S') (x y : R') : f (x - y) = f x - f y :=
   map_sub _ _ _
 #align mul_semiring_action_hom.map_sub MulSemiringActionHom.map_sub
 
-/- warning: mul_semiring_action_hom.map_one -> MulSemiringActionHom.map_one is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_one MulSemiringActionHom.map_oneₓ'. -/
 protected theorem map_one (f : R →+*[M] S) : f 1 = 1 :=
   map_one _
 #align mul_semiring_action_hom.map_one MulSemiringActionHom.map_one
 
-/- warning: mul_semiring_action_hom.map_mul -> MulSemiringActionHom.map_mul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_mul MulSemiringActionHom.map_mulₓ'. -/
 protected theorem map_mul (f : R →+*[M] S) (x y : R) : f (x * y) = f x * f y :=
   map_mul _ _ _
 #align mul_semiring_action_hom.map_mul MulSemiringActionHom.map_mul
 
-/- warning: mul_semiring_action_hom.map_smul -> MulSemiringActionHom.map_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_smul MulSemiringActionHom.map_smulₓ'. -/
 protected theorem map_smul (f : R →+*[M] S) (m : M) (x : R) : f (m • x) = m • f x :=
   map_smul _ _ _
 #align mul_semiring_action_hom.map_smul MulSemiringActionHom.map_smul
@@ -700,31 +545,16 @@ def comp (g : S →+*[M] T) (f : R →+*[M] S) : R →+*[M] T :=
 #align mul_semiring_action_hom.comp MulSemiringActionHom.comp
 -/
 
-/- warning: mul_semiring_action_hom.comp_apply -> MulSemiringActionHom.comp_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.comp_apply MulSemiringActionHom.comp_applyₓ'. -/
 @[simp]
 theorem comp_apply (g : S →+*[M] T) (f : R →+*[M] S) (x : R) : g.comp f x = g (f x) :=
   rfl
 #align mul_semiring_action_hom.comp_apply MulSemiringActionHom.comp_apply
 
-/- warning: mul_semiring_action_hom.id_comp -> MulSemiringActionHom.id_comp is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (MulSemiringActionHom.comp.{u1, u2, u3, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20 S _inst_19 _inst_20 (MulSemiringActionHom.id.{u1, u3} M _inst_4 S _inst_19 _inst_20) f) f
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u1)} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (MulSemiringActionHom.comp.{u3, u2, u1, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20 S _inst_19 _inst_20 (MulSemiringActionHom.id.{u3, u1} M _inst_4 S _inst_19 _inst_20) f) f
-Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.id_comp MulSemiringActionHom.id_compₓ'. -/
 @[simp]
 theorem id_comp (f : R →+*[M] S) : (MulSemiringActionHom.id M).comp f = f :=
   ext fun x => by rw [comp_apply, id_apply]
 #align mul_semiring_action_hom.id_comp MulSemiringActionHom.id_comp
 
-/- warning: mul_semiring_action_hom.comp_id -> MulSemiringActionHom.comp_id is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (MulSemiringActionHom.comp.{u1, u2, u2, u3} M _inst_4 R _inst_15 _inst_16 R _inst_15 _inst_16 S _inst_19 _inst_20 f (MulSemiringActionHom.id.{u1, u2} M _inst_4 R _inst_15 _inst_16)) f
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u1)} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (MulSemiringActionHom.comp.{u3, u2, u2, u1} M _inst_4 R _inst_15 _inst_16 R _inst_15 _inst_16 S _inst_19 _inst_20 f (MulSemiringActionHom.id.{u3, u2} M _inst_4 R _inst_15 _inst_16)) f
-Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.comp_id MulSemiringActionHom.comp_idₓ'. -/
 @[simp]
 theorem comp_id (f : R →+*[M] S) : f.comp (MulSemiringActionHom.id M) = f :=
   ext fun x => by rw [comp_apply, id_apply]
Diff
@@ -358,18 +358,14 @@ protected theorem congr_fun {f g : A →+[M] B} (h : f = g) (x : A) : f x = g x
 <too large>
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.to_mul_action_hom_injective DistribMulActionHom.toMulActionHom_injectiveₓ'. -/
 theorem toMulActionHom_injective {f g : A →+[M] B} (h : (f : A →[M] B) = (g : A →[M] B)) : f = g :=
-  by
-  ext a
-  exact MulActionHom.congr_fun h a
+  by ext a; exact MulActionHom.congr_fun h a
 #align distrib_mul_action_hom.to_mul_action_hom_injective DistribMulActionHom.toMulActionHom_injective
 
 /- warning: distrib_mul_action_hom.to_add_monoid_hom_injective -> DistribMulActionHom.toAddMonoidHom_injective is a dubious translation:
 <too large>
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.to_add_monoid_hom_injective DistribMulActionHom.toAddMonoidHom_injectiveₓ'. -/
-theorem toAddMonoidHom_injective {f g : A →+[M] B} (h : (f : A →+ B) = (g : A →+ B)) : f = g :=
-  by
-  ext a
-  exact AddMonoidHom.congr_fun h a
+theorem toAddMonoidHom_injective {f g : A →+[M] B} (h : (f : A →+ B) = (g : A →+ B)) : f = g := by
+  ext a; exact AddMonoidHom.congr_fun h a
 #align distrib_mul_action_hom.to_add_monoid_hom_injective DistribMulActionHom.toAddMonoidHom_injective
 
 /- warning: distrib_mul_action_hom.map_zero -> DistribMulActionHom.map_zero is a dubious translation:
@@ -514,9 +510,7 @@ variable {R M'} [AddMonoid M'] [DistribMulAction R M']
 
 #print DistribMulActionHom.ext_ring /-
 @[ext]
-theorem ext_ring {f g : R →+[R] M'} (h : f 1 = g 1) : f = g :=
-  by
-  ext x
+theorem ext_ring {f g : R →+[R] M'} (h : f 1 = g 1) : f = g := by ext x;
   rw [← mul_one x, ← smul_eq_mul R, f.map_smul, g.map_smul, h]
 #align distrib_mul_action_hom.ext_ring DistribMulActionHom.ext_ring
 -/
Diff
@@ -224,10 +224,7 @@ theorem comp_id (f : X →[M'] Y) : f.comp (MulActionHom.id M') = f :=
 variable {A B}
 
 /- warning: mul_action_hom.inverse -> MulActionHom.inverse is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (g : B -> A), (Function.LeftInverse.{succ u2, succ u3} A B g (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (fun (_x : MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) => A -> B) ([anonymous].{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) f)) -> (Function.RightInverse.{succ u2, succ u3} A B g (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (fun (_x : MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) => A -> B) ([anonymous].{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) f)) -> (MulActionHom.{u1, u3, u2} M B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10))) A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))))
-but is expected to have type
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (g : B -> A), (Function.LeftInverse.{succ u2, succ u3} A B g (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u2, u3} (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) M A B (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10))) (instSMulHomClassMulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10))))) f)) -> (Function.RightInverse.{succ u2, succ u3} A B g (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u2, u3} (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) M A B (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10))) (instSMulHomClassMulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10))))) f)) -> (MulActionHom.{u1, u3, u2} M B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10))) A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align mul_action_hom.inverse MulActionHom.inverseₓ'. -/
 /-- The inverse of a bijective equivariant map is equivariant. -/
 @[simps]
@@ -312,10 +309,7 @@ instance : DistribMulActionHomClass (A →+[M] B) M A B
 variable {M A B}
 
 /- warning: distrib_mul_action_hom.to_fun_eq_coe -> DistribMulActionHom.toFun_eq_coe is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u3)} (A -> B) (DistribMulActionHom.toFun.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10 f) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f)
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u1)} (A -> B) (MulActionHom.toFun.{u3, u2, u1} M A (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHom.toMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (f : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) f) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.to_fun_eq_coe DistribMulActionHom.toFun_eq_coeₓ'. -/
 @[simp]
 theorem toFun_eq_coe (f : A →+[M] B) : f.toFun = ⇑f :=
@@ -323,10 +317,7 @@ theorem toFun_eq_coe (f : A →+[M] B) : f.toFun = ⇑f :=
 #align distrib_mul_action_hom.to_fun_eq_coe DistribMulActionHom.toFun_eq_coe
 
 /- warning: distrib_mul_action_hom.coe_fn_coe -> DistribMulActionHom.coe_fn_coe is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u3)} ((fun (_x : AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) => A -> B) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u3) (succ u2)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u3) (succ u2)} a b] => self.0) (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u3) (succ u2)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u3) (succ u2)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (AddMonoidHom.hasCoeT.{u2, u3, max u2 u3} A B (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulActionHomClass.toAddMonoidHomClass.{max u2 u3, u1, u2, u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.distribMulActionHomClass.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))))) f)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (fun (_x : AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) => A -> B) (AddMonoidHom.hasCoeToFun.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u3) (succ u2)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u3) (succ u2)} a b] => self.0) (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u3) (succ u2)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u3) (succ u2)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (AddMonoidHom.hasCoeT.{u2, u3, max u2 u3} A B (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulActionHomClass.toAddMonoidHomClass.{max u2 u3, u1, u2, u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.distribMulActionHomClass.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f)
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u1)} (forall (a : A), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => B) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => B) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)) A B (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (AddZeroClass.toAdd.{u1} B (AddMonoid.toAddZeroClass.{u1} B _inst_9)) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)) A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9) (AddMonoidHom.addMonoidHomClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)))) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} A B (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulActionHomClass.toAddMonoidHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.coe_fn_coe DistribMulActionHom.coe_fn_coeₓ'. -/
 @[norm_cast]
 theorem coe_fn_coe (f : A →+[M] B) : ((f : A →+ B) : A → B) = f :=
@@ -334,10 +325,7 @@ theorem coe_fn_coe (f : A →+[M] B) : ((f : A →+ B) : A → B) = f :=
 #align distrib_mul_action_hom.coe_fn_coe DistribMulActionHom.coe_fn_coe
 
 /- warning: distrib_mul_action_hom.coe_fn_coe' -> DistribMulActionHom.coe_fn_coe' is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u3)} ((fun (_x : MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) => A -> B) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (fun (_x : MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) => A -> B) ([anonymous].{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f)
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u1)} (forall (a : A), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M A (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M A (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10)))) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (instSMulHomClassMulActionHom.{u3, u2, u1} M A (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))))) (SMulHomClass.toMulActionHom.{u2, u1, u3, max u2 u1} A B M (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.coe_fn_coe' DistribMulActionHom.coe_fn_coe'ₓ'. -/
 @[norm_cast]
 theorem coe_fn_coe' (f : A →+[M] B) : ((f : A →[M] B) : A → B) = f :=
@@ -345,10 +333,7 @@ theorem coe_fn_coe' (f : A →+[M] B) : ((f : A →[M] B) : A → B) = f :=
 #align distrib_mul_action_hom.coe_fn_coe' DistribMulActionHom.coe_fn_coe'
 
 /- warning: distrib_mul_action_hom.ext -> DistribMulActionHom.ext is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] {f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10} {g : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10}, (forall (x : A), Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) g x)) -> (Eq.{max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f g)
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] {f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10} {g : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10}, (forall (x : A), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) g x)) -> (Eq.{max (succ u2) (succ u1)} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.ext DistribMulActionHom.extₓ'. -/
 @[ext]
 theorem ext : ∀ {f g : A →+[M] B}, (∀ x, f x = g x) → f = g :=
@@ -356,30 +341,21 @@ theorem ext : ∀ {f g : A →+[M] B}, (∀ x, f x = g x) → f = g :=
 #align distrib_mul_action_hom.ext DistribMulActionHom.ext
 
 /- warning: distrib_mul_action_hom.ext_iff -> DistribMulActionHom.ext_iff is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] {f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10} {g : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10}, Iff (Eq.{max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f g) (forall (x : A), Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) g x))
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] {f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10} {g : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10}, Iff (Eq.{max (succ u2) (succ u1)} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f g) (forall (x : A), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) g x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.ext_iff DistribMulActionHom.ext_iffₓ'. -/
 theorem ext_iff {f g : A →+[M] B} : f = g ↔ ∀ x, f x = g x :=
   FunLike.ext_iff
 #align distrib_mul_action_hom.ext_iff DistribMulActionHom.ext_iff
 
 /- warning: distrib_mul_action_hom.congr_fun -> DistribMulActionHom.congr_fun is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] {f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10} {g : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10}, (Eq.{max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f g) -> (forall (x : A), Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) g x))
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] {f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10} {g : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10}, (Eq.{max (succ u2) (succ u1)} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f g) -> (forall (x : A), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) g x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.congr_fun DistribMulActionHom.congr_funₓ'. -/
 protected theorem congr_fun {f g : A →+[M] B} (h : f = g) (x : A) : f x = g x :=
   FunLike.congr_fun h _
 #align distrib_mul_action_hom.congr_fun DistribMulActionHom.congr_fun
 
 /- warning: distrib_mul_action_hom.to_mul_action_hom_injective -> DistribMulActionHom.toMulActionHom_injective is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] {f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10} {g : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10}, (Eq.{max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)))) f) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)))) g)) -> (Eq.{max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f g)
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] {f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10} {g : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10}, (Eq.{max (succ u2) (succ u1)} (MulActionHom.{u3, u2, u1} M A (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10)))) (SMulHomClass.toMulActionHom.{u2, u1, u3, max u2 u1} A B M (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)) f) (SMulHomClass.toMulActionHom.{u2, u1, u3, max u2 u1} A B M (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)) g)) -> (Eq.{max (succ u2) (succ u1)} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.to_mul_action_hom_injective DistribMulActionHom.toMulActionHom_injectiveₓ'. -/
 theorem toMulActionHom_injective {f g : A →+[M] B} (h : (f : A →[M] B) = (g : A →[M] B)) : f = g :=
   by
@@ -388,10 +364,7 @@ theorem toMulActionHom_injective {f g : A →+[M] B} (h : (f : A →[M] B) = (g
 #align distrib_mul_action_hom.to_mul_action_hom_injective DistribMulActionHom.toMulActionHom_injective
 
 /- warning: distrib_mul_action_hom.to_add_monoid_hom_injective -> DistribMulActionHom.toAddMonoidHom_injective is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] {f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10} {g : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10}, (Eq.{max (succ u3) (succ u2)} (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u3) (succ u2)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u3) (succ u2)} a b] => self.0) (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u3) (succ u2)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u3) (succ u2)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (AddMonoidHom.hasCoeT.{u2, u3, max u2 u3} A B (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulActionHomClass.toAddMonoidHomClass.{max u2 u3, u1, u2, u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.distribMulActionHomClass.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))))) f) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u3) (succ u2)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u3) (succ u2)} a b] => self.0) (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u3) (succ u2)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u3) (succ u2)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (AddMonoidHom.hasCoeT.{u2, u3, max u2 u3} A B (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulActionHomClass.toAddMonoidHomClass.{max u2 u3, u1, u2, u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.distribMulActionHomClass.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))))) g)) -> (Eq.{max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f g)
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] {f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10} {g : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10}, (Eq.{max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} A B (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulActionHomClass.toAddMonoidHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)) f) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} A B (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulActionHomClass.toAddMonoidHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)) g)) -> (Eq.{max (succ u2) (succ u1)} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.to_add_monoid_hom_injective DistribMulActionHom.toAddMonoidHom_injectiveₓ'. -/
 theorem toAddMonoidHom_injective {f g : A →+[M] B} (h : (f : A →+ B) = (g : A →+ B)) : f = g :=
   by
@@ -400,50 +373,35 @@ theorem toAddMonoidHom_injective {f g : A →+[M] B} (h : (f : A →+ B) = (g :
 #align distrib_mul_action_hom.to_add_monoid_hom_injective DistribMulActionHom.toAddMonoidHom_injective
 
 /- warning: distrib_mul_action_hom.map_zero -> DistribMulActionHom.map_zero is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)))))
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_5)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_5)))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_5)))) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_5)))) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_5)))) _inst_9)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.map_zero DistribMulActionHom.map_zeroₓ'. -/
 protected theorem map_zero (f : A →+[M] B) : f 0 = 0 :=
   map_zero _
 #align distrib_mul_action_hom.map_zero DistribMulActionHom.map_zero
 
 /- warning: distrib_mul_action_hom.map_add -> DistribMulActionHom.map_add is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (x : A) (y : A), Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5))) x y)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f y))
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (x : A) (y : A), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5))) x y)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5))) x y)) (HAdd.hAdd.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) y) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (instHAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (AddZeroClass.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (AddMonoid.toAddZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) _inst_9))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f y))
+<too large>
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.map_add DistribMulActionHom.map_addₓ'. -/
 protected theorem map_add (f : A →+[M] B) (x y : A) : f (x + y) = f x + f y :=
   map_add _ _ _
 #align distrib_mul_action_hom.map_add DistribMulActionHom.map_add
 
 /- warning: distrib_mul_action_hom.map_neg -> DistribMulActionHom.map_neg is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] (A' : Type.{u2}) [_inst_7 : AddGroup.{u2} A'] [_inst_8 : DistribMulAction.{u1, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))] (B' : Type.{u3}) [_inst_11 : AddGroup.{u3} B'] [_inst_12 : DistribMulAction.{u1, u3} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11))] (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) (x : A'), Eq.{succ u3} B' (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) => A' -> B') ([anonymous].{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) f (Neg.neg.{u2} A' (SubNegMonoid.toHasNeg.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) x)) (Neg.neg.{u3} B' (SubNegMonoid.toHasNeg.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) => A' -> B') ([anonymous].{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) f x))
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] (A' : Type.{u2}) [_inst_7 : AddGroup.{u2} A'] [_inst_8 : DistribMulAction.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))] (B' : Type.{u1}) [_inst_11 : AddGroup.{u1} B'] [_inst_12 : DistribMulAction.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) (x : A'), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') (Neg.neg.{u2} A' (NegZeroClass.toNeg.{u2} A' (SubNegZeroMonoid.toNegZeroClass.{u2} A' (SubtractionMonoid.toSubNegZeroMonoid.{u2} A' (AddGroup.toSubtractionMonoid.{u2} A' _inst_7)))) x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) A' (fun (_x : A') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' (SMulZeroClass.toSMul.{u3, u2} M A' (AddMonoid.toZero.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribSMul.toSMulZeroClass.{u3, u2} M A' (AddMonoid.toAddZeroClass.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribMulAction.toDistribSMul.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8))) (SMulZeroClass.toSMul.{u3, u1} M B' (AddMonoid.toZero.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribSMul.toSMulZeroClass.{u3, u1} M B' (AddMonoid.toAddZeroClass.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribMulAction.toDistribSMul.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_8 _inst_12 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) f (Neg.neg.{u2} A' (NegZeroClass.toNeg.{u2} A' (SubNegZeroMonoid.toNegZeroClass.{u2} A' (SubtractionMonoid.toSubNegZeroMonoid.{u2} A' (AddGroup.toSubtractionMonoid.{u2} A' _inst_7)))) x)) (Neg.neg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) (NegZeroClass.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) (AddGroup.toSubtractionMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) _inst_11)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) A' (fun (_x : A') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' (SMulZeroClass.toSMul.{u3, u2} M A' (AddMonoid.toZero.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribSMul.toSMulZeroClass.{u3, u2} M A' (AddMonoid.toAddZeroClass.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribMulAction.toDistribSMul.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8))) (SMulZeroClass.toSMul.{u3, u1} M B' (AddMonoid.toZero.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribSMul.toSMulZeroClass.{u3, u1} M B' (AddMonoid.toAddZeroClass.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribMulAction.toDistribSMul.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_8 _inst_12 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) f x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.map_neg DistribMulActionHom.map_negₓ'. -/
 protected theorem map_neg (f : A' →+[M] B') (x : A') : f (-x) = -f x :=
   map_neg _ _
 #align distrib_mul_action_hom.map_neg DistribMulActionHom.map_neg
 
 /- warning: distrib_mul_action_hom.map_sub -> DistribMulActionHom.map_sub is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] (A' : Type.{u2}) [_inst_7 : AddGroup.{u2} A'] [_inst_8 : DistribMulAction.{u1, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))] (B' : Type.{u3}) [_inst_11 : AddGroup.{u3} B'] [_inst_12 : DistribMulAction.{u1, u3} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11))] (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) (x : A') (y : A'), Eq.{succ u3} B' (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) => A' -> B') ([anonymous].{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) f (HSub.hSub.{u2, u2, u2} A' A' A' (instHSub.{u2} A' (SubNegMonoid.toHasSub.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) x y)) (HSub.hSub.{u3, u3, u3} B' B' B' (instHSub.{u3} B' (SubNegMonoid.toHasSub.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) => A' -> B') ([anonymous].{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) => A' -> B') ([anonymous].{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) f y))
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] (A' : Type.{u2}) [_inst_7 : AddGroup.{u2} A'] [_inst_8 : DistribMulAction.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))] (B' : Type.{u1}) [_inst_11 : AddGroup.{u1} B'] [_inst_12 : DistribMulAction.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) (x : A') (y : A'), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') (HSub.hSub.{u2, u2, u2} A' A' A' (instHSub.{u2} A' (SubNegMonoid.toSub.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) x y)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) A' (fun (_x : A') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' (SMulZeroClass.toSMul.{u3, u2} M A' (AddMonoid.toZero.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribSMul.toSMulZeroClass.{u3, u2} M A' (AddMonoid.toAddZeroClass.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribMulAction.toDistribSMul.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8))) (SMulZeroClass.toSMul.{u3, u1} M B' (AddMonoid.toZero.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribSMul.toSMulZeroClass.{u3, u1} M B' (AddMonoid.toAddZeroClass.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribMulAction.toDistribSMul.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_8 _inst_12 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) f (HSub.hSub.{u2, u2, u2} A' A' A' (instHSub.{u2} A' (SubNegMonoid.toSub.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) x y)) (HSub.hSub.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') y) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) (instHSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) (SubNegMonoid.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) (AddGroup.toSubNegMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) _inst_11))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) A' (fun (_x : A') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' (SMulZeroClass.toSMul.{u3, u2} M A' (AddMonoid.toZero.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribSMul.toSMulZeroClass.{u3, u2} M A' (AddMonoid.toAddZeroClass.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribMulAction.toDistribSMul.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8))) (SMulZeroClass.toSMul.{u3, u1} M B' (AddMonoid.toZero.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribSMul.toSMulZeroClass.{u3, u1} M B' (AddMonoid.toAddZeroClass.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribMulAction.toDistribSMul.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_8 _inst_12 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) A' (fun (_x : A') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' (SMulZeroClass.toSMul.{u3, u2} M A' (AddMonoid.toZero.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribSMul.toSMulZeroClass.{u3, u2} M A' (AddMonoid.toAddZeroClass.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribMulAction.toDistribSMul.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8))) (SMulZeroClass.toSMul.{u3, u1} M B' (AddMonoid.toZero.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribSMul.toSMulZeroClass.{u3, u1} M B' (AddMonoid.toAddZeroClass.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribMulAction.toDistribSMul.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_8 _inst_12 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) f y))
+<too large>
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.map_sub DistribMulActionHom.map_subₓ'. -/
 protected theorem map_sub (f : A' →+[M] B') (x y : A') : f (x - y) = f x - f y :=
   map_sub _ _ _
 #align distrib_mul_action_hom.map_sub DistribMulActionHom.map_sub
 
 /- warning: distrib_mul_action_hom.map_smul -> DistribMulActionHom.map_smul is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (m : M) (x : A), Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f (SMul.smul.{u1, u2} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) m x)) (SMul.smul.{u1, u3} M B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10))) m (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f x))
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (m : M) (x : A), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) (HSMul.hSMul.{u3, u2, u2} M A A (instHSMul.{u3, u2} M A (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6)))) m x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f (HSMul.hSMul.{u3, u2, u2} M A A (instHSMul.{u3, u2} M A (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6)))) m x)) (HSMul.hSMul.{u3, u1, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (instHSMul.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (SMulZeroClass.toSMul.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (AddMonoid.toAddZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) _inst_4 _inst_9 _inst_10)))) m (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.map_smul DistribMulActionHom.map_smulₓ'. -/
 protected theorem map_smul (f : A →+[M] B) (m : M) (x : A) : f (m • x) = m • f x :=
   map_smul _ _ _
@@ -474,10 +432,7 @@ instance : One (A →+[M] A) :=
   ⟨DistribMulActionHom.id M⟩
 
 /- warning: distrib_mul_action_hom.coe_zero -> DistribMulActionHom.coe_zero is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9], Eq.{max (succ u2) (succ u3)} ((fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) (OfNat.ofNat.{max u2 u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) 0 (OfNat.mk.{max u2 u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) 0 (Zero.zero.{max u2 u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (DistribMulActionHom.hasZero.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (OfNat.ofNat.{max u2 u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) 0 (OfNat.mk.{max u2 u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) 0 (Zero.zero.{max u2 u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (DistribMulActionHom.hasZero.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))))) (OfNat.ofNat.{max u2 u3} ((fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) (Zero.zero.{max u2 u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (DistribMulActionHom.hasZero.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) 0 (OfNat.mk.{max u2 u3} ((fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) (Zero.zero.{max u2 u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (DistribMulActionHom.hasZero.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) 0 (Zero.zero.{max u2 u3} ((fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) (Zero.zero.{max u2 u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (DistribMulActionHom.hasZero.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) (Pi.instZero.{u2, u3} A (fun (ᾰ : A) => B) (fun (i : A) => AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9))))))
-but is expected to have type
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u3}} [_inst_5 : AddMonoid.{u3} A] [_inst_6 : DistribMulAction.{u1, u3} M A _inst_4 _inst_5] {B : Type.{u2}} [_inst_9 : AddMonoid.{u2} B] [_inst_10 : DistribMulAction.{u1, u2} M B _inst_4 _inst_9], Eq.{max (succ u3) (succ u2)} (forall (a : A), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) a) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (DistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (DistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u1, u3} M A (AddMonoid.toZero.{u3} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u3} M A (AddMonoid.toAddZeroClass.{u3} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u3} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u1, u2} M B (AddMonoid.toZero.{u2} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u2} M B (AddMonoid.toAddZeroClass.{u2} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u2} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (DistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) (OfNat.ofNat.{max u3 u2} (DistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) 0 (Zero.toOfNat0.{max u3 u2} (DistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (DistribMulActionHom.instZeroDistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)))) (OfNat.ofNat.{max u3 u2} (forall (a : A), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) a) 0 (Zero.toOfNat0.{max u3 u2} (forall (a : A), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) a) (Pi.instZero.{u3, u2} A (fun (a : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) a) (fun (i : A) => AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) i) _inst_9))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.coe_zero DistribMulActionHom.coe_zeroₓ'. -/
 @[simp]
 theorem coe_zero : ((0 : A →+[M] B) : A → B) = 0 :=
@@ -515,10 +470,7 @@ def comp (g : B →+[M] C) (f : A →+[M] B) : A →+[M] C :=
 -/
 
 /- warning: distrib_mul_action_hom.comp_apply -> DistribMulActionHom.comp_apply is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] {C : Type.{u4}} [_inst_13 : AddMonoid.{u4} C] [_inst_14 : DistribMulAction.{u1, u4} M C _inst_4 _inst_13] (g : DistribMulActionHom.{u1, u3, u4} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (x : A), Eq.{succ u4} C (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (DistribMulActionHom.{u1, u2, u4} M _inst_4 A _inst_5 _inst_6 C _inst_13 _inst_14) (fun (_x : DistribMulActionHom.{u1, u2, u4} M _inst_4 A _inst_5 _inst_6 C _inst_13 _inst_14) => A -> C) ([anonymous].{u1, u2, u4} M _inst_4 A _inst_5 _inst_6 C _inst_13 _inst_14) (DistribMulActionHom.comp.{u1, u2, u3, u4} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10 C _inst_13 _inst_14 g f) x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (DistribMulActionHom.{u1, u3, u4} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) (fun (_x : DistribMulActionHom.{u1, u3, u4} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) => B -> C) ([anonymous].{u1, u3, u4} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) g (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f x))
-but is expected to have type
-  forall {M : Type.{u4}} [_inst_4 : Monoid.{u4} M] {A : Type.{u1}} [_inst_5 : AddMonoid.{u1} A] [_inst_6 : DistribMulAction.{u4, u1} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u4, u3} M B _inst_4 _inst_9] {C : Type.{u2}} [_inst_13 : AddMonoid.{u2} C] [_inst_14 : DistribMulAction.{u4, u2} M C _inst_4 _inst_13] (g : DistribMulActionHom.{u4, u3, u2} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) (f : DistribMulActionHom.{u4, u1, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (x : A), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => C) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (DistribMulActionHom.{u4, u1, u2} M _inst_4 A _inst_5 _inst_6 C _inst_13 _inst_14) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => C) _x) (SMulHomClass.toFunLike.{max u1 u2, u4, u1, u2} (DistribMulActionHom.{u4, u1, u2} M _inst_4 A _inst_5 _inst_6 C _inst_13 _inst_14) M A C (SMulZeroClass.toSMul.{u4, u1} M A (AddMonoid.toZero.{u1} A _inst_5) (DistribSMul.toSMulZeroClass.{u4, u1} M A (AddMonoid.toAddZeroClass.{u1} A _inst_5) (DistribMulAction.toDistribSMul.{u4, u1} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u4, u2} M C (AddMonoid.toZero.{u2} C _inst_13) (DistribSMul.toSMulZeroClass.{u4, u2} M C (AddMonoid.toAddZeroClass.{u2} C _inst_13) (DistribMulAction.toDistribSMul.{u4, u2} M C _inst_4 _inst_13 _inst_14))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u4, u1, u2} (DistribMulActionHom.{u4, u1, u2} M _inst_4 A _inst_5 _inst_6 C _inst_13 _inst_14) M A C _inst_4 _inst_5 _inst_13 _inst_6 _inst_14 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u4, u1, u2} M _inst_4 A _inst_5 _inst_6 C _inst_13 _inst_14))) (DistribMulActionHom.comp.{u4, u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10 C _inst_13 _inst_14 g f) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (DistribMulActionHom.{u4, u3, u2} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => C) _x) (SMulHomClass.toFunLike.{max u3 u2, u4, u3, u2} (DistribMulActionHom.{u4, u3, u2} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) M B C (SMulZeroClass.toSMul.{u4, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u4, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u4, u3} M B _inst_4 _inst_9 _inst_10))) (SMulZeroClass.toSMul.{u4, u2} M C (AddMonoid.toZero.{u2} C _inst_13) (DistribSMul.toSMulZeroClass.{u4, u2} M C (AddMonoid.toAddZeroClass.{u2} C _inst_13) (DistribMulAction.toDistribSMul.{u4, u2} M C _inst_4 _inst_13 _inst_14))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u4, u3, u2} (DistribMulActionHom.{u4, u3, u2} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) M B C _inst_4 _inst_9 _inst_13 _inst_10 _inst_14 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u4, u3, u2} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14))) g (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (DistribMulActionHom.{u4, u1, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u1 u3, u4, u1, u3} (DistribMulActionHom.{u4, u1, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u4, u1} M A (AddMonoid.toZero.{u1} A _inst_5) (DistribSMul.toSMulZeroClass.{u4, u1} M A (AddMonoid.toAddZeroClass.{u1} A _inst_5) (DistribMulAction.toDistribSMul.{u4, u1} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u4, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u4, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u4, u3} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u3, u4, u1, u3} (DistribMulActionHom.{u4, u1, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u4, u1, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.comp_apply DistribMulActionHom.comp_applyₓ'. -/
 @[simp]
 theorem comp_apply (g : B →+[M] C) (f : A →+[M] B) (x : A) : g.comp f x = g (f x) :=
@@ -649,10 +601,7 @@ instance : MulSemiringActionHomClass (R →+*[M] S) M R S
 variable {M R S}
 
 /- warning: mul_semiring_action_hom.coe_fn_coe -> MulSemiringActionHom.coe_fn_coe is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u3)} ((fun (_x : RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) => R -> S) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (RingHom.hasCoeT.{max u2 u3, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19) (MulSemiringActionHomClass.toRingHomClass.{max u2 u3, u1, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.mulSemiringActionHomClass.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20))))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (fun (_x : RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) => R -> S) (RingHom.hasCoeToFun.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (RingHom.hasCoeT.{max u2 u3, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19) (MulSemiringActionHomClass.toRingHomClass.{max u2 u3, u1, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.mulSemiringActionHomClass.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20))))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f)
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (RingHomClass.toRingHom.{max u2 u1, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19) (MulSemiringActionHomClass.toRingHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.coe_fn_coe MulSemiringActionHom.coe_fn_coeₓ'. -/
 @[norm_cast]
 theorem coe_fn_coe (f : R →+*[M] S) : ((f : R →+* S) : R → S) = f :=
@@ -660,10 +609,7 @@ theorem coe_fn_coe (f : R →+*[M] S) : ((f : R →+* S) : R → S) = f :=
 #align mul_semiring_action_hom.coe_fn_coe MulSemiringActionHom.coe_fn_coe
 
 /- warning: mul_semiring_action_hom.coe_fn_coe' -> MulSemiringActionHom.coe_fn_coe' is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u3)} ((fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) => R -> S) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f)
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toDistribMulActionHom.{u3, u2, u1, max u2 u1} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.coe_fn_coe' MulSemiringActionHom.coe_fn_coe'ₓ'. -/
 @[norm_cast]
 theorem coe_fn_coe' (f : R →+*[M] S) : ((f : R →+[M] S) : R → S) = f :=
@@ -671,10 +617,7 @@ theorem coe_fn_coe' (f : R →+*[M] S) : ((f : R →+[M] S) : R → S) = f :=
 #align mul_semiring_action_hom.coe_fn_coe' MulSemiringActionHom.coe_fn_coe'
 
 /- warning: mul_semiring_action_hom.ext -> MulSemiringActionHom.ext is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] {f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20} {g : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20}, (forall (x : R), Eq.{succ u3} S (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) g x)) -> (Eq.{max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f g)
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] {f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20} {g : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20}, (forall (x : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) g x)) -> (Eq.{max (succ u2) (succ u1)} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.ext MulSemiringActionHom.extₓ'. -/
 @[ext]
 theorem ext : ∀ {f g : R →+*[M] S}, (∀ x, f x = g x) → f = g :=
@@ -682,80 +625,56 @@ theorem ext : ∀ {f g : R →+*[M] S}, (∀ x, f x = g x) → f = g :=
 #align mul_semiring_action_hom.ext MulSemiringActionHom.ext
 
 /- warning: mul_semiring_action_hom.ext_iff -> MulSemiringActionHom.ext_iff is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] {f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20} {g : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20}, Iff (Eq.{max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f g) (forall (x : R), Eq.{succ u3} S (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) g x))
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] {f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20} {g : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20}, Iff (Eq.{max (succ u2) (succ u1)} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f g) (forall (x : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) g x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.ext_iff MulSemiringActionHom.ext_iffₓ'. -/
 theorem ext_iff {f g : R →+*[M] S} : f = g ↔ ∀ x, f x = g x :=
   FunLike.ext_iff
 #align mul_semiring_action_hom.ext_iff MulSemiringActionHom.ext_iff
 
 /- warning: mul_semiring_action_hom.map_zero -> MulSemiringActionHom.map_zero is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{succ u3} S (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))))))) (OfNat.ofNat.{u3} S 0 (OfNat.mk.{u3} S 0 (Zero.zero.{u3} S (MulZeroClass.toHasZero.{u3} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))))))
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15))))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15))))) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15))))) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15))))) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15))))) _inst_19))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_zero MulSemiringActionHom.map_zeroₓ'. -/
 protected theorem map_zero (f : R →+*[M] S) : f 0 = 0 :=
   map_zero _
 #align mul_semiring_action_hom.map_zero MulSemiringActionHom.map_zero
 
 /- warning: mul_semiring_action_hom.map_add -> MulSemiringActionHom.map_add is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (x : R) (y : R), Eq.{succ u3} S (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toHasAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) x y)) (HAdd.hAdd.{u3, u3, u3} S S S (instHAdd.{u3} S (Distrib.toHasAdd.{u3} S (NonUnitalNonAssocSemiring.toDistrib.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19))))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f y))
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (x : R) (y : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) x y)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) x y)) (HAdd.hAdd.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) y) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (instHAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (Distrib.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (NonUnitalNonAssocSemiring.toDistrib.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) _inst_19))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f y))
+<too large>
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_add MulSemiringActionHom.map_addₓ'. -/
 protected theorem map_add (f : R →+*[M] S) (x y : R) : f (x + y) = f x + f y :=
   map_add _ _ _
 #align mul_semiring_action_hom.map_add MulSemiringActionHom.map_add
 
 /- warning: mul_semiring_action_hom.map_neg -> MulSemiringActionHom.map_neg is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] (R' : Type.{u2}) [_inst_17 : Ring.{u2} R'] [_inst_18 : MulSemiringAction.{u1, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17)] (S' : Type.{u3}) [_inst_21 : Ring.{u3} S'] [_inst_22 : MulSemiringAction.{u1, u3} M S' _inst_4 (Ring.toSemiring.{u3} S' _inst_21)] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (x : R'), Eq.{succ u3} S' (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f (Neg.neg.{u2} R' (SubNegMonoid.toHasNeg.{u2} R' (AddGroup.toSubNegMonoid.{u2} R' (AddGroupWithOne.toAddGroup.{u2} R' (AddCommGroupWithOne.toAddGroupWithOne.{u2} R' (Ring.toAddCommGroupWithOne.{u2} R' _inst_17))))) x)) (Neg.neg.{u3} S' (SubNegMonoid.toHasNeg.{u3} S' (AddGroup.toSubNegMonoid.{u3} S' (AddGroupWithOne.toAddGroup.{u3} S' (AddCommGroupWithOne.toAddGroupWithOne.{u3} S' (Ring.toAddCommGroupWithOne.{u3} S' _inst_21))))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f x))
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] (R' : Type.{u2}) [_inst_17 : Ring.{u2} R'] [_inst_18 : MulSemiringAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17)] (S' : Type.{u1}) [_inst_21 : Ring.{u1} S'] [_inst_22 : MulSemiringAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21)] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (x : R'), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') (Neg.neg.{u2} R' (Ring.toNeg.{u2} R' _inst_17) x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f (Neg.neg.{u2} R' (Ring.toNeg.{u2} R' _inst_17) x)) (Neg.neg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') x) (Ring.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') x) _inst_21) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_neg MulSemiringActionHom.map_negₓ'. -/
 protected theorem map_neg (f : R' →+*[M] S') (x : R') : f (-x) = -f x :=
   map_neg _ _
 #align mul_semiring_action_hom.map_neg MulSemiringActionHom.map_neg
 
 /- warning: mul_semiring_action_hom.map_sub -> MulSemiringActionHom.map_sub is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] (R' : Type.{u2}) [_inst_17 : Ring.{u2} R'] [_inst_18 : MulSemiringAction.{u1, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17)] (S' : Type.{u3}) [_inst_21 : Ring.{u3} S'] [_inst_22 : MulSemiringAction.{u1, u3} M S' _inst_4 (Ring.toSemiring.{u3} S' _inst_21)] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (x : R') (y : R'), Eq.{succ u3} S' (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f (HSub.hSub.{u2, u2, u2} R' R' R' (instHSub.{u2} R' (SubNegMonoid.toHasSub.{u2} R' (AddGroup.toSubNegMonoid.{u2} R' (AddGroupWithOne.toAddGroup.{u2} R' (AddCommGroupWithOne.toAddGroupWithOne.{u2} R' (Ring.toAddCommGroupWithOne.{u2} R' _inst_17)))))) x y)) (HSub.hSub.{u3, u3, u3} S' S' S' (instHSub.{u3} S' (SubNegMonoid.toHasSub.{u3} S' (AddGroup.toSubNegMonoid.{u3} S' (AddGroupWithOne.toAddGroup.{u3} S' (AddCommGroupWithOne.toAddGroupWithOne.{u3} S' (Ring.toAddCommGroupWithOne.{u3} S' _inst_21)))))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f y))
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] (R' : Type.{u2}) [_inst_17 : Ring.{u2} R'] [_inst_18 : MulSemiringAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17)] (S' : Type.{u1}) [_inst_21 : Ring.{u1} S'] [_inst_22 : MulSemiringAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21)] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (x : R') (y : R'), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') (HSub.hSub.{u2, u2, u2} R' R' R' (instHSub.{u2} R' (Ring.toSub.{u2} R' _inst_17)) x y)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f (HSub.hSub.{u2, u2, u2} R' R' R' (instHSub.{u2} R' (Ring.toSub.{u2} R' _inst_17)) x y)) (HSub.hSub.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') y) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') x) (instHSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') x) (Ring.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') x) _inst_21)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f y))
+<too large>
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_sub MulSemiringActionHom.map_subₓ'. -/
 protected theorem map_sub (f : R' →+*[M] S') (x y : R') : f (x - y) = f x - f y :=
   map_sub _ _ _
 #align mul_semiring_action_hom.map_sub MulSemiringActionHom.map_sub
 
 /- warning: mul_semiring_action_hom.map_one -> MulSemiringActionHom.map_one is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{succ u3} S (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f (OfNat.ofNat.{u2} R 1 (OfNat.mk.{u2} R 1 (One.one.{u2} R (AddMonoidWithOne.toOne.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))))))) (OfNat.ofNat.{u3} S 1 (OfNat.mk.{u3} S 1 (One.one.{u3} S (AddMonoidWithOne.toOne.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))))))
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_15)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_15)))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_15)))) 1 (One.toOfNat1.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_15)))) (Semiring.toOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_15)))) _inst_19)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_one MulSemiringActionHom.map_oneₓ'. -/
 protected theorem map_one (f : R →+*[M] S) : f 1 = 1 :=
   map_one _
 #align mul_semiring_action_hom.map_one MulSemiringActionHom.map_one
 
 /- warning: mul_semiring_action_hom.map_mul -> MulSemiringActionHom.map_mul is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (x : R) (y : R), Eq.{succ u3} S (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f (HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) x y)) (HMul.hMul.{u3, u3, u3} S S S (instHMul.{u3} S (Distrib.toHasMul.{u3} S (NonUnitalNonAssocSemiring.toDistrib.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19))))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f y))
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (x : R) (y : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) x y)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f (HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) x y)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) y) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) _inst_19)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f y))
+<too large>
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_mul MulSemiringActionHom.map_mulₓ'. -/
 protected theorem map_mul (f : R →+*[M] S) (x y : R) : f (x * y) = f x * f y :=
   map_mul _ _ _
 #align mul_semiring_action_hom.map_mul MulSemiringActionHom.map_mul
 
 /- warning: mul_semiring_action_hom.map_smul -> MulSemiringActionHom.map_smul is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (m : M) (x : R), Eq.{succ u3} S (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f (SMul.smul.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16)))) m x)) (SMul.smul.{u1, u3} M S (SMulZeroClass.toHasSmul.{u1, u3} M S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))))) (DistribSMul.toSmulZeroClass.{u1, u3} M S (AddMonoid.toAddZeroClass.{u3} S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19))))) (DistribMulAction.toDistribSMul.{u1, u3} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)))) m (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f x))
-but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (m : M) (x : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (HSMul.hSMul.{u3, u2, u2} M R R (instHSMul.{u3, u2} M R (SMulZeroClass.toSMul.{u3, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15)) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16))))) m x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f (HSMul.hSMul.{u3, u2, u2} M R R (instHSMul.{u3, u2} M R (SMulZeroClass.toSMul.{u3, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15)) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16))))) m x)) (HSMul.hSMul.{u3, u1, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (instHSMul.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (SMulZeroClass.toSMul.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) _inst_19)) (DistribSMul.toSMulZeroClass.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (AddMonoid.toAddZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (AddMonoidWithOne.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (NonAssocSemiring.toAddCommMonoidWithOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (NonAssocSemiring.toAddCommMonoidWithOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) _inst_4 _inst_19 _inst_20))))) m (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_smul MulSemiringActionHom.map_smulₓ'. -/
 protected theorem map_smul (f : R →+*[M] S) (m : M) (x : R) : f (m • x) = m • f x :=
   map_smul _ _ _
@@ -788,10 +707,7 @@ def comp (g : S →+*[M] T) (f : R →+*[M] S) : R →+*[M] T :=
 -/
 
 /- warning: mul_semiring_action_hom.comp_apply -> MulSemiringActionHom.comp_apply is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] {T : Type.{u4}} [_inst_23 : Semiring.{u4} T] [_inst_24 : MulSemiringAction.{u1, u4} M T _inst_4 _inst_23] (g : MulSemiringActionHom.{u1, u3, u4} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (x : R), Eq.{succ u4} T (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (MulSemiringActionHom.{u1, u2, u4} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24) (fun (_x : MulSemiringActionHom.{u1, u2, u4} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24) => R -> T) ([anonymous].{u1, u2, u4} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24) (MulSemiringActionHom.comp.{u1, u2, u3, u4} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20 T _inst_23 _inst_24 g f) x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (MulSemiringActionHom.{u1, u3, u4} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) (fun (_x : MulSemiringActionHom.{u1, u3, u4} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) => S -> T) ([anonymous].{u1, u3, u4} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) g (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f x))
-but is expected to have type
-  forall {M : Type.{u4}} [_inst_4 : Monoid.{u4} M] {R : Type.{u1}} [_inst_15 : Semiring.{u1} R] [_inst_16 : MulSemiringAction.{u4, u1} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u4, u3} M S _inst_4 _inst_19] {T : Type.{u2}} [_inst_23 : Semiring.{u2} T] [_inst_24 : MulSemiringAction.{u4, u2} M T _inst_4 _inst_23] (g : MulSemiringActionHom.{u4, u3, u2} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) (f : MulSemiringActionHom.{u4, u1, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (x : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => T) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulSemiringActionHom.{u4, u1, u2} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => T) _x) (SMulHomClass.toFunLike.{max u1 u2, u4, u1, u2} (MulSemiringActionHom.{u4, u1, u2} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24) M R T (SMulZeroClass.toSMul.{u4, u1} M R (AddMonoid.toZero.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u4, u1} M R (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15))))) (DistribMulAction.toDistribSMul.{u4, u1} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u4, u1} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u4, u2} M T (AddMonoid.toZero.{u2} T (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23))))) (DistribSMul.toSMulZeroClass.{u4, u2} M T (AddMonoid.toAddZeroClass.{u2} T (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23))))) (DistribMulAction.toDistribSMul.{u4, u2} M T _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23)))) (MulSemiringAction.toDistribMulAction.{u4, u2} M T _inst_4 _inst_23 _inst_24)))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u4, u1, u2} (MulSemiringActionHom.{u4, u1, u2} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24) M R T _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23)))) (MulSemiringAction.toDistribMulAction.{u4, u1} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u4, u2} M T _inst_4 _inst_23 _inst_24) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u1 u2, u4, u1, u2} (MulSemiringActionHom.{u4, u1, u2} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24) M R T _inst_4 _inst_15 _inst_23 (MulSemiringAction.toDistribMulAction.{u4, u1} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u4, u2} M T _inst_4 _inst_23 _inst_24) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u4, u1, u2} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24)))) (MulSemiringActionHom.comp.{u4, u1, u3, u2} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20 T _inst_23 _inst_24 g f) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (MulSemiringActionHom.{u4, u3, u2} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : S) => T) _x) (SMulHomClass.toFunLike.{max u3 u2, u4, u3, u2} (MulSemiringActionHom.{u4, u3, u2} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) M S T (SMulZeroClass.toSMul.{u4, u3} M S (AddMonoid.toZero.{u3} S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u4, u3} M S (AddMonoid.toAddZeroClass.{u3} S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19))))) (DistribMulAction.toDistribSMul.{u4, u3} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u4, u3} M S _inst_4 _inst_19 _inst_20)))) (SMulZeroClass.toSMul.{u4, u2} M T (AddMonoid.toZero.{u2} T (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23))))) (DistribSMul.toSMulZeroClass.{u4, u2} M T (AddMonoid.toAddZeroClass.{u2} T (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23))))) (DistribMulAction.toDistribSMul.{u4, u2} M T _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23)))) (MulSemiringAction.toDistribMulAction.{u4, u2} M T _inst_4 _inst_23 _inst_24)))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u4, u3, u2} (MulSemiringActionHom.{u4, u3, u2} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) M S T _inst_4 (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23)))) (MulSemiringAction.toDistribMulAction.{u4, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringAction.toDistribMulAction.{u4, u2} M T _inst_4 _inst_23 _inst_24) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u3 u2, u4, u3, u2} (MulSemiringActionHom.{u4, u3, u2} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) M S T _inst_4 _inst_19 _inst_23 (MulSemiringAction.toDistribMulAction.{u4, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringAction.toDistribMulAction.{u4, u2} M T _inst_4 _inst_23 _inst_24) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u4, u3, u2} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24)))) g (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (MulSemiringActionHom.{u4, u1, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u1 u3, u4, u1, u3} (MulSemiringActionHom.{u4, u1, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u4, u1} M R (AddMonoid.toZero.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u4, u1} M R (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15))))) (DistribMulAction.toDistribSMul.{u4, u1} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u4, u1} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u4, u3} M S (AddMonoid.toZero.{u3} S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u4, u3} M S (AddMonoid.toAddZeroClass.{u3} S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19))))) (DistribMulAction.toDistribSMul.{u4, u3} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u4, u3} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u3, u4, u1, u3} (MulSemiringActionHom.{u4, u1, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u4, u1} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u4, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u1 u3, u4, u1, u3} (MulSemiringActionHom.{u4, u1, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u4, u1} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u4, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u4, u1, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.comp_apply MulSemiringActionHom.comp_applyₓ'. -/
 @[simp]
 theorem comp_apply (g : S →+*[M] T) (f : R →+*[M] S) (x : R) : g.comp f x = g (f x) :=
Diff
@@ -122,7 +122,7 @@ variable {M M' X Y}
 lean 3 declaration is
   forall {M' : Type.{u1}} {X : Type.{u2}} [_inst_1 : SMul.{u1, u2} M' X] {Y : Type.{u3}} [_inst_2 : SMul.{u1, u3} M' Y] (f : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (m : M') (x : X), Eq.{succ u3} Y (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (fun (_x : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) => X -> Y) ([anonymous].{u1, u2, u3} M' X _inst_1 Y _inst_2) f (SMul.smul.{u1, u2} M' X _inst_1 m x)) (SMul.smul.{u1, u3} M' Y _inst_2 m (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (fun (_x : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) => X -> Y) ([anonymous].{u1, u2, u3} M' X _inst_1 Y _inst_2) f x))
 but is expected to have type
-  forall {M' : Type.{u3}} {X : Type.{u2}} [_inst_1 : SMul.{u3, u2} M' X] {Y : Type.{u1}} [_inst_2 : SMul.{u3, u1} M' Y] (f : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) (m : M') (x : X), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : X) => Y) (HSMul.hSMul.{u3, u2, u2} M' X X (instHSMul.{u3, u2} M' X _inst_1) m x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) f (HSMul.hSMul.{u3, u2, u2} M' X X (instHSMul.{u3, u2} M' X _inst_1) m x)) (HSMul.hSMul.{u3, u1, u1} M' ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : X) => Y) x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : X) => Y) x) (instHSMul.{u3, u1} M' ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : X) => Y) x) _inst_2) m (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) f x))
+  forall {M' : Type.{u3}} {X : Type.{u2}} [_inst_1 : SMul.{u3, u2} M' X] {Y : Type.{u1}} [_inst_2 : SMul.{u3, u1} M' Y] (f : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) (m : M') (x : X), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) (HSMul.hSMul.{u3, u2, u2} M' X X (instHSMul.{u3, u2} M' X _inst_1) m x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) f (HSMul.hSMul.{u3, u2, u2} M' X X (instHSMul.{u3, u2} M' X _inst_1) m x)) (HSMul.hSMul.{u3, u1, u1} M' ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) x) (instHSMul.{u3, u1} M' ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) x) _inst_2) m (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) f x))
 Case conversion may be inaccurate. Consider using '#align mul_action_hom.map_smul MulActionHom.map_smulₓ'. -/
 protected theorem map_smul (f : X →[M'] Y) (m : M') (x : X) : f (m • x) = m • f x :=
   map_smul _ _ _
@@ -132,7 +132,7 @@ protected theorem map_smul (f : X →[M'] Y) (m : M') (x : X) : f (m • x) = m
 lean 3 declaration is
   forall {M' : Type.{u1}} {X : Type.{u2}} [_inst_1 : SMul.{u1, u2} M' X] {Y : Type.{u3}} [_inst_2 : SMul.{u1, u3} M' Y] {f : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2} {g : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2}, (forall (x : X), Eq.{succ u3} Y (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (fun (_x : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) => X -> Y) ([anonymous].{u1, u2, u3} M' X _inst_1 Y _inst_2) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (fun (_x : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) => X -> Y) ([anonymous].{u1, u2, u3} M' X _inst_1 Y _inst_2) g x)) -> (Eq.{max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) f g)
 but is expected to have type
-  forall {M' : Type.{u3}} {X : Type.{u2}} [_inst_1 : SMul.{u3, u2} M' X] {Y : Type.{u1}} [_inst_2 : SMul.{u3, u1} M' Y] {f : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2} {g : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2}, (forall (x : X), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : X) => Y) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) g x)) -> (Eq.{max (succ u2) (succ u1)} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) f g)
+  forall {M' : Type.{u3}} {X : Type.{u2}} [_inst_1 : SMul.{u3, u2} M' X] {Y : Type.{u1}} [_inst_2 : SMul.{u3, u1} M' Y] {f : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2} {g : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2}, (forall (x : X), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) g x)) -> (Eq.{max (succ u2) (succ u1)} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) f g)
 Case conversion may be inaccurate. Consider using '#align mul_action_hom.ext MulActionHom.extₓ'. -/
 @[ext]
 theorem ext : ∀ {f g : X →[M'] Y}, (∀ x, f x = g x) → f = g :=
@@ -143,7 +143,7 @@ theorem ext : ∀ {f g : X →[M'] Y}, (∀ x, f x = g x) → f = g :=
 lean 3 declaration is
   forall {M' : Type.{u1}} {X : Type.{u2}} [_inst_1 : SMul.{u1, u2} M' X] {Y : Type.{u3}} [_inst_2 : SMul.{u1, u3} M' Y] {f : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2} {g : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2}, Iff (Eq.{max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) f g) (forall (x : X), Eq.{succ u3} Y (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (fun (_x : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) => X -> Y) ([anonymous].{u1, u2, u3} M' X _inst_1 Y _inst_2) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (fun (_x : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) => X -> Y) ([anonymous].{u1, u2, u3} M' X _inst_1 Y _inst_2) g x))
 but is expected to have type
-  forall {M' : Type.{u3}} {X : Type.{u2}} [_inst_1 : SMul.{u3, u2} M' X] {Y : Type.{u1}} [_inst_2 : SMul.{u3, u1} M' Y] {f : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2} {g : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2}, Iff (Eq.{max (succ u2) (succ u1)} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) f g) (forall (x : X), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : X) => Y) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) g x))
+  forall {M' : Type.{u3}} {X : Type.{u2}} [_inst_1 : SMul.{u3, u2} M' X] {Y : Type.{u1}} [_inst_2 : SMul.{u3, u1} M' Y] {f : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2} {g : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2}, Iff (Eq.{max (succ u2) (succ u1)} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) f g) (forall (x : X), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) g x))
 Case conversion may be inaccurate. Consider using '#align mul_action_hom.ext_iff MulActionHom.ext_iffₓ'. -/
 theorem ext_iff {f g : X →[M'] Y} : f = g ↔ ∀ x, f x = g x :=
   FunLike.ext_iff
@@ -153,7 +153,7 @@ theorem ext_iff {f g : X →[M'] Y} : f = g ↔ ∀ x, f x = g x :=
 lean 3 declaration is
   forall {M' : Type.{u1}} {X : Type.{u2}} [_inst_1 : SMul.{u1, u2} M' X] {Y : Type.{u3}} [_inst_2 : SMul.{u1, u3} M' Y] {f : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2} {g : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2}, (Eq.{max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) f g) -> (forall (x : X), Eq.{succ u3} Y (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (fun (_x : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) => X -> Y) ([anonymous].{u1, u2, u3} M' X _inst_1 Y _inst_2) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (fun (_x : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) => X -> Y) ([anonymous].{u1, u2, u3} M' X _inst_1 Y _inst_2) g x))
 but is expected to have type
-  forall {M' : Type.{u3}} {X : Type.{u2}} [_inst_1 : SMul.{u3, u2} M' X] {Y : Type.{u1}} [_inst_2 : SMul.{u3, u1} M' Y] {f : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2} {g : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2}, (Eq.{max (succ u2) (succ u1)} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) f g) -> (forall (x : X), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : X) => Y) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) g x))
+  forall {M' : Type.{u3}} {X : Type.{u2}} [_inst_1 : SMul.{u3, u2} M' X] {Y : Type.{u1}} [_inst_2 : SMul.{u3, u1} M' Y] {f : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2} {g : MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2}, (Eq.{max (succ u2) (succ u1)} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) f g) -> (forall (x : X), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u3, u2, u1} M' X _inst_1 Y _inst_2)) g x))
 Case conversion may be inaccurate. Consider using '#align mul_action_hom.congr_fun MulActionHom.congr_funₓ'. -/
 protected theorem congr_fun {f g : X →[M'] Y} (h : f = g) (x : X) : f x = g x :=
   FunLike.congr_fun h _
@@ -192,7 +192,7 @@ def comp (g : Y →[M'] Z) (f : X →[M'] Y) : X →[M'] Z :=
 lean 3 declaration is
   forall {M' : Type.{u1}} {X : Type.{u2}} [_inst_1 : SMul.{u1, u2} M' X] {Y : Type.{u3}} [_inst_2 : SMul.{u1, u3} M' Y] {Z : Type.{u4}} [_inst_3 : SMul.{u1, u4} M' Z] (g : MulActionHom.{u1, u3, u4} M' Y _inst_2 Z _inst_3) (f : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (x : X), Eq.{succ u4} Z (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (MulActionHom.{u1, u2, u4} M' X _inst_1 Z _inst_3) (fun (_x : MulActionHom.{u1, u2, u4} M' X _inst_1 Z _inst_3) => X -> Z) ([anonymous].{u1, u2, u4} M' X _inst_1 Z _inst_3) (MulActionHom.comp.{u1, u2, u3, u4} M' X _inst_1 Y _inst_2 Z _inst_3 g f) x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (MulActionHom.{u1, u3, u4} M' Y _inst_2 Z _inst_3) (fun (_x : MulActionHom.{u1, u3, u4} M' Y _inst_2 Z _inst_3) => Y -> Z) ([anonymous].{u1, u3, u4} M' Y _inst_2 Z _inst_3) g (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) (fun (_x : MulActionHom.{u1, u2, u3} M' X _inst_1 Y _inst_2) => X -> Y) ([anonymous].{u1, u2, u3} M' X _inst_1 Y _inst_2) f x))
 but is expected to have type
-  forall {M' : Type.{u4}} {X : Type.{u1}} [_inst_1 : SMul.{u4, u1} M' X] {Y : Type.{u3}} [_inst_2 : SMul.{u4, u3} M' Y] {Z : Type.{u2}} [_inst_3 : SMul.{u4, u2} M' Z] (g : MulActionHom.{u4, u3, u2} M' Y _inst_2 Z _inst_3) (f : MulActionHom.{u4, u1, u3} M' X _inst_1 Y _inst_2) (x : X), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : X) => Z) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulActionHom.{u4, u1, u2} M' X _inst_1 Z _inst_3) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : X) => Z) _x) (SMulHomClass.toFunLike.{max u1 u2, u4, u1, u2} (MulActionHom.{u4, u1, u2} M' X _inst_1 Z _inst_3) M' X Z _inst_1 _inst_3 (instSMulHomClassMulActionHom.{u4, u1, u2} M' X _inst_1 Z _inst_3)) (MulActionHom.comp.{u4, u1, u3, u2} M' X _inst_1 Y _inst_2 Z _inst_3 g f) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (MulActionHom.{u4, u3, u2} M' Y _inst_2 Z _inst_3) Y (fun (_x : Y) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Y) => Z) _x) (SMulHomClass.toFunLike.{max u3 u2, u4, u3, u2} (MulActionHom.{u4, u3, u2} M' Y _inst_2 Z _inst_3) M' Y Z _inst_2 _inst_3 (instSMulHomClassMulActionHom.{u4, u3, u2} M' Y _inst_2 Z _inst_3)) g (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (MulActionHom.{u4, u1, u3} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : X) => Y) _x) (SMulHomClass.toFunLike.{max u1 u3, u4, u1, u3} (MulActionHom.{u4, u1, u3} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u4, u1, u3} M' X _inst_1 Y _inst_2)) f x))
+  forall {M' : Type.{u4}} {X : Type.{u1}} [_inst_1 : SMul.{u4, u1} M' X] {Y : Type.{u3}} [_inst_2 : SMul.{u4, u3} M' Y] {Z : Type.{u2}} [_inst_3 : SMul.{u4, u2} M' Z] (g : MulActionHom.{u4, u3, u2} M' Y _inst_2 Z _inst_3) (f : MulActionHom.{u4, u1, u3} M' X _inst_1 Y _inst_2) (x : X), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Z) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulActionHom.{u4, u1, u2} M' X _inst_1 Z _inst_3) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Z) _x) (SMulHomClass.toFunLike.{max u1 u2, u4, u1, u2} (MulActionHom.{u4, u1, u2} M' X _inst_1 Z _inst_3) M' X Z _inst_1 _inst_3 (instSMulHomClassMulActionHom.{u4, u1, u2} M' X _inst_1 Z _inst_3)) (MulActionHom.comp.{u4, u1, u3, u2} M' X _inst_1 Y _inst_2 Z _inst_3 g f) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (MulActionHom.{u4, u3, u2} M' Y _inst_2 Z _inst_3) Y (fun (_x : Y) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Y) => Z) _x) (SMulHomClass.toFunLike.{max u3 u2, u4, u3, u2} (MulActionHom.{u4, u3, u2} M' Y _inst_2 Z _inst_3) M' Y Z _inst_2 _inst_3 (instSMulHomClassMulActionHom.{u4, u3, u2} M' Y _inst_2 Z _inst_3)) g (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (MulActionHom.{u4, u1, u3} M' X _inst_1 Y _inst_2) X (fun (_x : X) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : X) => Y) _x) (SMulHomClass.toFunLike.{max u1 u3, u4, u1, u3} (MulActionHom.{u4, u1, u3} M' X _inst_1 Y _inst_2) M' X Y _inst_1 _inst_2 (instSMulHomClassMulActionHom.{u4, u1, u3} M' X _inst_1 Y _inst_2)) f x))
 Case conversion may be inaccurate. Consider using '#align mul_action_hom.comp_apply MulActionHom.comp_applyₓ'. -/
 @[simp]
 theorem comp_apply (g : Y →[M'] Z) (f : X →[M'] Y) (x : X) : g.comp f x = g (f x) :=
@@ -227,7 +227,7 @@ variable {A B}
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (g : B -> A), (Function.LeftInverse.{succ u2, succ u3} A B g (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (fun (_x : MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) => A -> B) ([anonymous].{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) f)) -> (Function.RightInverse.{succ u2, succ u3} A B g (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (fun (_x : MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) => A -> B) ([anonymous].{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) f)) -> (MulActionHom.{u1, u3, u2} M B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10))) A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))))
 but is expected to have type
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (g : B -> A), (Function.LeftInverse.{succ u2, succ u3} A B g (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u2, u3} (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) M A B (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10))) (instSMulHomClassMulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10))))) f)) -> (Function.RightInverse.{succ u2, succ u3} A B g (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u2, u3} (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) M A B (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10))) (instSMulHomClassMulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10))))) f)) -> (MulActionHom.{u1, u3, u2} M B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10))) A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))))
+  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (g : B -> A), (Function.LeftInverse.{succ u2, succ u3} A B g (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u2, u3} (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) M A B (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10))) (instSMulHomClassMulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10))))) f)) -> (Function.RightInverse.{succ u2, succ u3} A B g (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u2, u3} (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) M A B (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10))) (instSMulHomClassMulActionHom.{u1, u2, u3} M A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10))))) f)) -> (MulActionHom.{u1, u3, u2} M B (SMulZeroClass.toSMul.{u1, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10))) A (SMulZeroClass.toSMul.{u1, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))))
 Case conversion may be inaccurate. Consider using '#align mul_action_hom.inverse MulActionHom.inverseₓ'. -/
 /-- The inverse of a bijective equivariant map is equivariant. -/
 @[simps]
@@ -315,7 +315,7 @@ variable {M A B}
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u3)} (A -> B) (DistribMulActionHom.toFun.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10 f) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f)
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u1)} (A -> B) (MulActionHom.toFun.{u3, u2, u1} M A (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHom.toMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (f : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) f) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f)
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u1)} (A -> B) (MulActionHom.toFun.{u3, u2, u1} M A (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHom.toMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (f : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) f) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f)
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.to_fun_eq_coe DistribMulActionHom.toFun_eq_coeₓ'. -/
 @[simp]
 theorem toFun_eq_coe (f : A →+[M] B) : f.toFun = ⇑f :=
@@ -326,7 +326,7 @@ theorem toFun_eq_coe (f : A →+[M] B) : f.toFun = ⇑f :=
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u3)} ((fun (_x : AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) => A -> B) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u3) (succ u2)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u3) (succ u2)} a b] => self.0) (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u3) (succ u2)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u3) (succ u2)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (AddMonoidHom.hasCoeT.{u2, u3, max u2 u3} A B (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulActionHomClass.toAddMonoidHomClass.{max u2 u3, u1, u2, u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.distribMulActionHomClass.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))))) f)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (fun (_x : AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) => A -> B) (AddMonoidHom.hasCoeToFun.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u3) (succ u2)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u3) (succ u2)} a b] => self.0) (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u3) (succ u2)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u3) (succ u2)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (AddMonoidHom.hasCoeT.{u2, u3, max u2 u3} A B (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulActionHomClass.toAddMonoidHomClass.{max u2 u3, u1, u2, u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.distribMulActionHomClass.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f)
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u1)} (forall (a : A), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => B) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => B) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)) A B (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (AddZeroClass.toAdd.{u1} B (AddMonoid.toAddZeroClass.{u1} B _inst_9)) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)) A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9) (AddMonoidHom.addMonoidHomClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)))) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} A B (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulActionHomClass.toAddMonoidHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f)
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u1)} (forall (a : A), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => B) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => B) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)) A B (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (AddZeroClass.toAdd.{u1} B (AddMonoid.toAddZeroClass.{u1} B _inst_9)) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)) A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9) (AddMonoidHom.addMonoidHomClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)))) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} A B (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulActionHomClass.toAddMonoidHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f)
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.coe_fn_coe DistribMulActionHom.coe_fn_coeₓ'. -/
 @[norm_cast]
 theorem coe_fn_coe (f : A →+[M] B) : ((f : A →+ B) : A → B) = f :=
@@ -337,7 +337,7 @@ theorem coe_fn_coe (f : A →+[M] B) : ((f : A →+ B) : A → B) = f :=
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u3)} ((fun (_x : MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) => A -> B) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (fun (_x : MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) => A -> B) ([anonymous].{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (MulActionHom.{u1, u2, u3} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10)))) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f)
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u1)} (forall (a : A), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M A (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M A (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10)))) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (instSMulHomClassMulActionHom.{u3, u2, u1} M A (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))))) (SMulHomClass.toMulActionHom.{u2, u1, u3, max u2 u1} A B M (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f)
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u1)} (forall (a : A), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulActionHom.{u3, u2, u1} M A (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulActionHom.{u3, u2, u1} M A (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10)))) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (instSMulHomClassMulActionHom.{u3, u2, u1} M A (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) B (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))))) (SMulHomClass.toMulActionHom.{u2, u1, u3, max u2 u1} A B M (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f)
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.coe_fn_coe' DistribMulActionHom.coe_fn_coe'ₓ'. -/
 @[norm_cast]
 theorem coe_fn_coe' (f : A →+[M] B) : ((f : A →[M] B) : A → B) = f :=
@@ -348,7 +348,7 @@ theorem coe_fn_coe' (f : A →+[M] B) : ((f : A →[M] B) : A → B) = f :=
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] {f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10} {g : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10}, (forall (x : A), Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) g x)) -> (Eq.{max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f g)
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] {f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10} {g : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10}, (forall (x : A), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) g x)) -> (Eq.{max (succ u2) (succ u1)} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f g)
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] {f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10} {g : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10}, (forall (x : A), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) g x)) -> (Eq.{max (succ u2) (succ u1)} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f g)
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.ext DistribMulActionHom.extₓ'. -/
 @[ext]
 theorem ext : ∀ {f g : A →+[M] B}, (∀ x, f x = g x) → f = g :=
@@ -359,7 +359,7 @@ theorem ext : ∀ {f g : A →+[M] B}, (∀ x, f x = g x) → f = g :=
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] {f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10} {g : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10}, Iff (Eq.{max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f g) (forall (x : A), Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) g x))
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] {f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10} {g : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10}, Iff (Eq.{max (succ u2) (succ u1)} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f g) (forall (x : A), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) g x))
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] {f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10} {g : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10}, Iff (Eq.{max (succ u2) (succ u1)} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f g) (forall (x : A), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) g x))
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.ext_iff DistribMulActionHom.ext_iffₓ'. -/
 theorem ext_iff {f g : A →+[M] B} : f = g ↔ ∀ x, f x = g x :=
   FunLike.ext_iff
@@ -369,7 +369,7 @@ theorem ext_iff {f g : A →+[M] B} : f = g ↔ ∀ x, f x = g x :=
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] {f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10} {g : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10}, (Eq.{max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f g) -> (forall (x : A), Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) g x))
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] {f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10} {g : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10}, (Eq.{max (succ u2) (succ u1)} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f g) -> (forall (x : A), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) g x))
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] {f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10} {g : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10}, (Eq.{max (succ u2) (succ u1)} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f g) -> (forall (x : A), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) g x))
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.congr_fun DistribMulActionHom.congr_funₓ'. -/
 protected theorem congr_fun {f g : A →+[M] B} (h : f = g) (x : A) : f x = g x :=
   FunLike.congr_fun h _
@@ -403,7 +403,7 @@ theorem toAddMonoidHom_injective {f g : A →+[M] B} (h : (f : A →+ B) = (g :
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f (OfNat.ofNat.{u2} A 0 (OfNat.mk.{u2} A 0 (Zero.zero.{u2} A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)))))) (OfNat.ofNat.{u3} B 0 (OfNat.mk.{u3} B 0 (Zero.zero.{u3} B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)))))
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_5)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_5)))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_5)))) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_5)))) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_5)))) _inst_9)))
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_5)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_5)))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_5)))) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_5)))) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) (OfNat.ofNat.{u2} A 0 (Zero.toOfNat0.{u2} A (AddMonoid.toZero.{u2} A _inst_5)))) _inst_9)))
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.map_zero DistribMulActionHom.map_zeroₓ'. -/
 protected theorem map_zero (f : A →+[M] B) : f 0 = 0 :=
   map_zero _
@@ -413,7 +413,7 @@ protected theorem map_zero (f : A →+[M] B) : f 0 = 0 :=
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (x : A) (y : A), Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5))) x y)) (HAdd.hAdd.{u3, u3, u3} B B B (instHAdd.{u3} B (AddZeroClass.toHasAdd.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f y))
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (x : A) (y : A), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5))) x y)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5))) x y)) (HAdd.hAdd.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) y) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (instHAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (AddZeroClass.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (AddMonoid.toAddZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_9))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f y))
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (x : A) (y : A), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5))) x y)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5))) x y)) (HAdd.hAdd.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) y) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (instHAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (AddZeroClass.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (AddMonoid.toAddZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) _inst_9))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f y))
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.map_add DistribMulActionHom.map_addₓ'. -/
 protected theorem map_add (f : A →+[M] B) (x y : A) : f (x + y) = f x + f y :=
   map_add _ _ _
@@ -423,7 +423,7 @@ protected theorem map_add (f : A →+[M] B) (x y : A) : f (x + y) = f x + f y :=
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] (A' : Type.{u2}) [_inst_7 : AddGroup.{u2} A'] [_inst_8 : DistribMulAction.{u1, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))] (B' : Type.{u3}) [_inst_11 : AddGroup.{u3} B'] [_inst_12 : DistribMulAction.{u1, u3} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11))] (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) (x : A'), Eq.{succ u3} B' (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) => A' -> B') ([anonymous].{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) f (Neg.neg.{u2} A' (SubNegMonoid.toHasNeg.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) x)) (Neg.neg.{u3} B' (SubNegMonoid.toHasNeg.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) => A' -> B') ([anonymous].{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) f x))
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] (A' : Type.{u2}) [_inst_7 : AddGroup.{u2} A'] [_inst_8 : DistribMulAction.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))] (B' : Type.{u1}) [_inst_11 : AddGroup.{u1} B'] [_inst_12 : DistribMulAction.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) (x : A'), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A') => B') (Neg.neg.{u2} A' (NegZeroClass.toNeg.{u2} A' (SubNegZeroMonoid.toNegZeroClass.{u2} A' (SubtractionMonoid.toSubNegZeroMonoid.{u2} A' (AddGroup.toSubtractionMonoid.{u2} A' _inst_7)))) x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) A' (fun (_x : A') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A') => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' (SMulZeroClass.toSMul.{u3, u2} M A' (AddMonoid.toZero.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribSMul.toSMulZeroClass.{u3, u2} M A' (AddMonoid.toAddZeroClass.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribMulAction.toDistribSMul.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8))) (SMulZeroClass.toSMul.{u3, u1} M B' (AddMonoid.toZero.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribSMul.toSMulZeroClass.{u3, u1} M B' (AddMonoid.toAddZeroClass.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribMulAction.toDistribSMul.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_8 _inst_12 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) f (Neg.neg.{u2} A' (NegZeroClass.toNeg.{u2} A' (SubNegZeroMonoid.toNegZeroClass.{u2} A' (SubtractionMonoid.toSubNegZeroMonoid.{u2} A' (AddGroup.toSubtractionMonoid.{u2} A' _inst_7)))) x)) (Neg.neg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A') => B') x) (NegZeroClass.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A') => B') x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A') => B') x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A') => B') x) (AddGroup.toSubtractionMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A') => B') x) _inst_11)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) A' (fun (_x : A') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A') => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' (SMulZeroClass.toSMul.{u3, u2} M A' (AddMonoid.toZero.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribSMul.toSMulZeroClass.{u3, u2} M A' (AddMonoid.toAddZeroClass.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribMulAction.toDistribSMul.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8))) (SMulZeroClass.toSMul.{u3, u1} M B' (AddMonoid.toZero.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribSMul.toSMulZeroClass.{u3, u1} M B' (AddMonoid.toAddZeroClass.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribMulAction.toDistribSMul.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_8 _inst_12 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) f x))
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] (A' : Type.{u2}) [_inst_7 : AddGroup.{u2} A'] [_inst_8 : DistribMulAction.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))] (B' : Type.{u1}) [_inst_11 : AddGroup.{u1} B'] [_inst_12 : DistribMulAction.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) (x : A'), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') (Neg.neg.{u2} A' (NegZeroClass.toNeg.{u2} A' (SubNegZeroMonoid.toNegZeroClass.{u2} A' (SubtractionMonoid.toSubNegZeroMonoid.{u2} A' (AddGroup.toSubtractionMonoid.{u2} A' _inst_7)))) x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) A' (fun (_x : A') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' (SMulZeroClass.toSMul.{u3, u2} M A' (AddMonoid.toZero.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribSMul.toSMulZeroClass.{u3, u2} M A' (AddMonoid.toAddZeroClass.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribMulAction.toDistribSMul.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8))) (SMulZeroClass.toSMul.{u3, u1} M B' (AddMonoid.toZero.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribSMul.toSMulZeroClass.{u3, u1} M B' (AddMonoid.toAddZeroClass.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribMulAction.toDistribSMul.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_8 _inst_12 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) f (Neg.neg.{u2} A' (NegZeroClass.toNeg.{u2} A' (SubNegZeroMonoid.toNegZeroClass.{u2} A' (SubtractionMonoid.toSubNegZeroMonoid.{u2} A' (AddGroup.toSubtractionMonoid.{u2} A' _inst_7)))) x)) (Neg.neg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) (NegZeroClass.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) (AddGroup.toSubtractionMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) _inst_11)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) A' (fun (_x : A') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' (SMulZeroClass.toSMul.{u3, u2} M A' (AddMonoid.toZero.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribSMul.toSMulZeroClass.{u3, u2} M A' (AddMonoid.toAddZeroClass.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribMulAction.toDistribSMul.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8))) (SMulZeroClass.toSMul.{u3, u1} M B' (AddMonoid.toZero.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribSMul.toSMulZeroClass.{u3, u1} M B' (AddMonoid.toAddZeroClass.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribMulAction.toDistribSMul.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_8 _inst_12 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) f x))
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.map_neg DistribMulActionHom.map_negₓ'. -/
 protected theorem map_neg (f : A' →+[M] B') (x : A') : f (-x) = -f x :=
   map_neg _ _
@@ -433,7 +433,7 @@ protected theorem map_neg (f : A' →+[M] B') (x : A') : f (-x) = -f x :=
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] (A' : Type.{u2}) [_inst_7 : AddGroup.{u2} A'] [_inst_8 : DistribMulAction.{u1, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))] (B' : Type.{u3}) [_inst_11 : AddGroup.{u3} B'] [_inst_12 : DistribMulAction.{u1, u3} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11))] (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) (x : A') (y : A'), Eq.{succ u3} B' (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) => A' -> B') ([anonymous].{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) f (HSub.hSub.{u2, u2, u2} A' A' A' (instHSub.{u2} A' (SubNegMonoid.toHasSub.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) x y)) (HSub.hSub.{u3, u3, u3} B' B' B' (instHSub.{u3} B' (SubNegMonoid.toHasSub.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) => A' -> B') ([anonymous].{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) => A' -> B') ([anonymous].{u1, u2, u3} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u3} B' (AddGroup.toSubNegMonoid.{u3} B' _inst_11)) _inst_12) f y))
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] (A' : Type.{u2}) [_inst_7 : AddGroup.{u2} A'] [_inst_8 : DistribMulAction.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))] (B' : Type.{u1}) [_inst_11 : AddGroup.{u1} B'] [_inst_12 : DistribMulAction.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) (x : A') (y : A'), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A') => B') (HSub.hSub.{u2, u2, u2} A' A' A' (instHSub.{u2} A' (SubNegMonoid.toSub.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) x y)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) A' (fun (_x : A') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A') => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' (SMulZeroClass.toSMul.{u3, u2} M A' (AddMonoid.toZero.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribSMul.toSMulZeroClass.{u3, u2} M A' (AddMonoid.toAddZeroClass.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribMulAction.toDistribSMul.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8))) (SMulZeroClass.toSMul.{u3, u1} M B' (AddMonoid.toZero.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribSMul.toSMulZeroClass.{u3, u1} M B' (AddMonoid.toAddZeroClass.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribMulAction.toDistribSMul.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_8 _inst_12 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) f (HSub.hSub.{u2, u2, u2} A' A' A' (instHSub.{u2} A' (SubNegMonoid.toSub.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) x y)) (HSub.hSub.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A') => B') x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A') => B') y) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A') => B') x) (instHSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A') => B') x) (SubNegMonoid.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A') => B') x) (AddGroup.toSubNegMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A') => B') x) _inst_11))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) A' (fun (_x : A') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A') => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' (SMulZeroClass.toSMul.{u3, u2} M A' (AddMonoid.toZero.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribSMul.toSMulZeroClass.{u3, u2} M A' (AddMonoid.toAddZeroClass.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribMulAction.toDistribSMul.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8))) (SMulZeroClass.toSMul.{u3, u1} M B' (AddMonoid.toZero.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribSMul.toSMulZeroClass.{u3, u1} M B' (AddMonoid.toAddZeroClass.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribMulAction.toDistribSMul.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_8 _inst_12 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) A' (fun (_x : A') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A') => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' (SMulZeroClass.toSMul.{u3, u2} M A' (AddMonoid.toZero.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribSMul.toSMulZeroClass.{u3, u2} M A' (AddMonoid.toAddZeroClass.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribMulAction.toDistribSMul.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8))) (SMulZeroClass.toSMul.{u3, u1} M B' (AddMonoid.toZero.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribSMul.toSMulZeroClass.{u3, u1} M B' (AddMonoid.toAddZeroClass.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribMulAction.toDistribSMul.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_8 _inst_12 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) f y))
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] (A' : Type.{u2}) [_inst_7 : AddGroup.{u2} A'] [_inst_8 : DistribMulAction.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))] (B' : Type.{u1}) [_inst_11 : AddGroup.{u1} B'] [_inst_12 : DistribMulAction.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) (x : A') (y : A'), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') (HSub.hSub.{u2, u2, u2} A' A' A' (instHSub.{u2} A' (SubNegMonoid.toSub.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) x y)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) A' (fun (_x : A') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' (SMulZeroClass.toSMul.{u3, u2} M A' (AddMonoid.toZero.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribSMul.toSMulZeroClass.{u3, u2} M A' (AddMonoid.toAddZeroClass.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribMulAction.toDistribSMul.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8))) (SMulZeroClass.toSMul.{u3, u1} M B' (AddMonoid.toZero.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribSMul.toSMulZeroClass.{u3, u1} M B' (AddMonoid.toAddZeroClass.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribMulAction.toDistribSMul.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_8 _inst_12 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) f (HSub.hSub.{u2, u2, u2} A' A' A' (instHSub.{u2} A' (SubNegMonoid.toSub.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) x y)) (HSub.hSub.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') y) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) (instHSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) (SubNegMonoid.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) (AddGroup.toSubNegMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') x) _inst_11))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) A' (fun (_x : A') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' (SMulZeroClass.toSMul.{u3, u2} M A' (AddMonoid.toZero.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribSMul.toSMulZeroClass.{u3, u2} M A' (AddMonoid.toAddZeroClass.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribMulAction.toDistribSMul.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8))) (SMulZeroClass.toSMul.{u3, u1} M B' (AddMonoid.toZero.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribSMul.toSMulZeroClass.{u3, u1} M B' (AddMonoid.toAddZeroClass.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribMulAction.toDistribSMul.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_8 _inst_12 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) A' (fun (_x : A') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A') => B') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' (SMulZeroClass.toSMul.{u3, u2} M A' (AddMonoid.toZero.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribSMul.toSMulZeroClass.{u3, u2} M A' (AddMonoid.toAddZeroClass.{u2} A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7))) (DistribMulAction.toDistribSMul.{u3, u2} M A' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8))) (SMulZeroClass.toSMul.{u3, u1} M B' (AddMonoid.toZero.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribSMul.toSMulZeroClass.{u3, u1} M B' (AddMonoid.toAddZeroClass.{u1} B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11))) (DistribMulAction.toDistribSMul.{u3, u1} M B' _inst_4 (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12) M A' B' _inst_4 (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_8 _inst_12 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A' (SubNegMonoid.toAddMonoid.{u2} A' (AddGroup.toSubNegMonoid.{u2} A' _inst_7)) _inst_8 B' (SubNegMonoid.toAddMonoid.{u1} B' (AddGroup.toSubNegMonoid.{u1} B' _inst_11)) _inst_12))) f y))
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.map_sub DistribMulActionHom.map_subₓ'. -/
 protected theorem map_sub (f : A' →+[M] B') (x y : A') : f (x - y) = f x - f y :=
   map_sub _ _ _
@@ -443,7 +443,7 @@ protected theorem map_sub (f : A' →+[M] B') (x y : A') : f (x - y) = f x - f y
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (m : M) (x : A), Eq.{succ u3} B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f (SMul.smul.{u1, u2} M A (SMulZeroClass.toHasSmul.{u1, u2} M A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (DistribSMul.toSmulZeroClass.{u1, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} M A _inst_4 _inst_5 _inst_6))) m x)) (SMul.smul.{u1, u3} M B (SMulZeroClass.toHasSmul.{u1, u3} M B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (DistribSMul.toSmulZeroClass.{u1, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u3} M B _inst_4 _inst_9 _inst_10))) m (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f x))
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (m : M) (x : A), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) (HSMul.hSMul.{u3, u2, u2} M A A (instHSMul.{u3, u2} M A (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6)))) m x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f (HSMul.hSMul.{u3, u2, u2} M A A (instHSMul.{u3, u2} M A (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6)))) m x)) (HSMul.hSMul.{u3, u1, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (instHSMul.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (SMulZeroClass.toSMul.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) (AddMonoid.toAddZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) x) _inst_4 _inst_9 _inst_10)))) m (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f x))
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (m : M) (x : A), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) (HSMul.hSMul.{u3, u2, u2} M A A (instHSMul.{u3, u2} M A (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6)))) m x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f (HSMul.hSMul.{u3, u2, u2} M A A (instHSMul.{u3, u2} M A (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6)))) m x)) (HSMul.hSMul.{u3, u1, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (instHSMul.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (SMulZeroClass.toSMul.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) (AddMonoid.toAddZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) x) _inst_4 _inst_9 _inst_10)))) m (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f x))
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.map_smul DistribMulActionHom.map_smulₓ'. -/
 protected theorem map_smul (f : A →+[M] B) (m : M) (x : A) : f (m • x) = m • f x :=
   map_smul _ _ _
@@ -477,7 +477,7 @@ instance : One (A →+[M] A) :=
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9], Eq.{max (succ u2) (succ u3)} ((fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) (OfNat.ofNat.{max u2 u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) 0 (OfNat.mk.{max u2 u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) 0 (Zero.zero.{max u2 u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (DistribMulActionHom.hasZero.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (OfNat.ofNat.{max u2 u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) 0 (OfNat.mk.{max u2 u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) 0 (Zero.zero.{max u2 u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (DistribMulActionHom.hasZero.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))))) (OfNat.ofNat.{max u2 u3} ((fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) (Zero.zero.{max u2 u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (DistribMulActionHom.hasZero.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) 0 (OfNat.mk.{max u2 u3} ((fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) (Zero.zero.{max u2 u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (DistribMulActionHom.hasZero.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) 0 (Zero.zero.{max u2 u3} ((fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) (Zero.zero.{max u2 u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (DistribMulActionHom.hasZero.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) (Pi.instZero.{u2, u3} A (fun (ᾰ : A) => B) (fun (i : A) => AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B _inst_9))))))
 but is expected to have type
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u3}} [_inst_5 : AddMonoid.{u3} A] [_inst_6 : DistribMulAction.{u1, u3} M A _inst_4 _inst_5] {B : Type.{u2}} [_inst_9 : AddMonoid.{u2} B] [_inst_10 : DistribMulAction.{u1, u2} M B _inst_4 _inst_9], Eq.{max (succ u3) (succ u2)} (forall (a : A), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) a) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (DistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (DistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u1, u3} M A (AddMonoid.toZero.{u3} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u3} M A (AddMonoid.toAddZeroClass.{u3} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u3} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u1, u2} M B (AddMonoid.toZero.{u2} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u2} M B (AddMonoid.toAddZeroClass.{u2} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u2} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (DistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) (OfNat.ofNat.{max u3 u2} (DistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) 0 (Zero.toOfNat0.{max u3 u2} (DistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (DistribMulActionHom.instZeroDistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)))) (OfNat.ofNat.{max u3 u2} (forall (a : A), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) a) 0 (Zero.toOfNat0.{max u3 u2} (forall (a : A), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) a) (Pi.instZero.{u3, u2} A (fun (a : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) a) (fun (i : A) => AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) i) _inst_9))))
+  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u3}} [_inst_5 : AddMonoid.{u3} A] [_inst_6 : DistribMulAction.{u1, u3} M A _inst_4 _inst_5] {B : Type.{u2}} [_inst_9 : AddMonoid.{u2} B] [_inst_10 : DistribMulAction.{u1, u2} M B _inst_4 _inst_9], Eq.{max (succ u3) (succ u2)} (forall (a : A), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) a) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (DistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (DistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u1, u3} M A (AddMonoid.toZero.{u3} A _inst_5) (DistribSMul.toSMulZeroClass.{u1, u3} M A (AddMonoid.toAddZeroClass.{u3} A _inst_5) (DistribMulAction.toDistribSMul.{u1, u3} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u1, u2} M B (AddMonoid.toZero.{u2} B _inst_9) (DistribSMul.toSMulZeroClass.{u1, u2} M B (AddMonoid.toAddZeroClass.{u2} B _inst_9) (DistribMulAction.toDistribSMul.{u1, u2} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (DistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) (OfNat.ofNat.{max u3 u2} (DistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) 0 (Zero.toOfNat0.{max u3 u2} (DistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (DistribMulActionHom.instZeroDistribMulActionHom.{u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)))) (OfNat.ofNat.{max u3 u2} (forall (a : A), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) a) 0 (Zero.toOfNat0.{max u3 u2} (forall (a : A), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) a) (Pi.instZero.{u3, u2} A (fun (a : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) a) (fun (i : A) => AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) i) _inst_9))))
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.coe_zero DistribMulActionHom.coe_zeroₓ'. -/
 @[simp]
 theorem coe_zero : ((0 : A →+[M] B) : A → B) = 0 :=
@@ -518,7 +518,7 @@ def comp (g : B →+[M] C) (f : A →+[M] B) : A →+[M] C :=
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] {C : Type.{u4}} [_inst_13 : AddMonoid.{u4} C] [_inst_14 : DistribMulAction.{u1, u4} M C _inst_4 _inst_13] (g : DistribMulActionHom.{u1, u3, u4} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (x : A), Eq.{succ u4} C (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (DistribMulActionHom.{u1, u2, u4} M _inst_4 A _inst_5 _inst_6 C _inst_13 _inst_14) (fun (_x : DistribMulActionHom.{u1, u2, u4} M _inst_4 A _inst_5 _inst_6 C _inst_13 _inst_14) => A -> C) ([anonymous].{u1, u2, u4} M _inst_4 A _inst_5 _inst_6 C _inst_13 _inst_14) (DistribMulActionHom.comp.{u1, u2, u3, u4} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10 C _inst_13 _inst_14 g f) x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (DistribMulActionHom.{u1, u3, u4} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) (fun (_x : DistribMulActionHom.{u1, u3, u4} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) => B -> C) ([anonymous].{u1, u3, u4} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) g (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f x))
 but is expected to have type
-  forall {M : Type.{u4}} [_inst_4 : Monoid.{u4} M] {A : Type.{u1}} [_inst_5 : AddMonoid.{u1} A] [_inst_6 : DistribMulAction.{u4, u1} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u4, u3} M B _inst_4 _inst_9] {C : Type.{u2}} [_inst_13 : AddMonoid.{u2} C] [_inst_14 : DistribMulAction.{u4, u2} M C _inst_4 _inst_13] (g : DistribMulActionHom.{u4, u3, u2} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) (f : DistribMulActionHom.{u4, u1, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (x : A), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => C) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (DistribMulActionHom.{u4, u1, u2} M _inst_4 A _inst_5 _inst_6 C _inst_13 _inst_14) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => C) _x) (SMulHomClass.toFunLike.{max u1 u2, u4, u1, u2} (DistribMulActionHom.{u4, u1, u2} M _inst_4 A _inst_5 _inst_6 C _inst_13 _inst_14) M A C (SMulZeroClass.toSMul.{u4, u1} M A (AddMonoid.toZero.{u1} A _inst_5) (DistribSMul.toSMulZeroClass.{u4, u1} M A (AddMonoid.toAddZeroClass.{u1} A _inst_5) (DistribMulAction.toDistribSMul.{u4, u1} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u4, u2} M C (AddMonoid.toZero.{u2} C _inst_13) (DistribSMul.toSMulZeroClass.{u4, u2} M C (AddMonoid.toAddZeroClass.{u2} C _inst_13) (DistribMulAction.toDistribSMul.{u4, u2} M C _inst_4 _inst_13 _inst_14))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u4, u1, u2} (DistribMulActionHom.{u4, u1, u2} M _inst_4 A _inst_5 _inst_6 C _inst_13 _inst_14) M A C _inst_4 _inst_5 _inst_13 _inst_6 _inst_14 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u4, u1, u2} M _inst_4 A _inst_5 _inst_6 C _inst_13 _inst_14))) (DistribMulActionHom.comp.{u4, u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10 C _inst_13 _inst_14 g f) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (DistribMulActionHom.{u4, u3, u2} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => C) _x) (SMulHomClass.toFunLike.{max u3 u2, u4, u3, u2} (DistribMulActionHom.{u4, u3, u2} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) M B C (SMulZeroClass.toSMul.{u4, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u4, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u4, u3} M B _inst_4 _inst_9 _inst_10))) (SMulZeroClass.toSMul.{u4, u2} M C (AddMonoid.toZero.{u2} C _inst_13) (DistribSMul.toSMulZeroClass.{u4, u2} M C (AddMonoid.toAddZeroClass.{u2} C _inst_13) (DistribMulAction.toDistribSMul.{u4, u2} M C _inst_4 _inst_13 _inst_14))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u4, u3, u2} (DistribMulActionHom.{u4, u3, u2} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) M B C _inst_4 _inst_9 _inst_13 _inst_10 _inst_14 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u4, u3, u2} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14))) g (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (DistribMulActionHom.{u4, u1, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u1 u3, u4, u1, u3} (DistribMulActionHom.{u4, u1, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u4, u1} M A (AddMonoid.toZero.{u1} A _inst_5) (DistribSMul.toSMulZeroClass.{u4, u1} M A (AddMonoid.toAddZeroClass.{u1} A _inst_5) (DistribMulAction.toDistribSMul.{u4, u1} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u4, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u4, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u4, u3} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u3, u4, u1, u3} (DistribMulActionHom.{u4, u1, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u4, u1, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f x))
+  forall {M : Type.{u4}} [_inst_4 : Monoid.{u4} M] {A : Type.{u1}} [_inst_5 : AddMonoid.{u1} A] [_inst_6 : DistribMulAction.{u4, u1} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u4, u3} M B _inst_4 _inst_9] {C : Type.{u2}} [_inst_13 : AddMonoid.{u2} C] [_inst_14 : DistribMulAction.{u4, u2} M C _inst_4 _inst_13] (g : DistribMulActionHom.{u4, u3, u2} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) (f : DistribMulActionHom.{u4, u1, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (x : A), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => C) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (DistribMulActionHom.{u4, u1, u2} M _inst_4 A _inst_5 _inst_6 C _inst_13 _inst_14) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => C) _x) (SMulHomClass.toFunLike.{max u1 u2, u4, u1, u2} (DistribMulActionHom.{u4, u1, u2} M _inst_4 A _inst_5 _inst_6 C _inst_13 _inst_14) M A C (SMulZeroClass.toSMul.{u4, u1} M A (AddMonoid.toZero.{u1} A _inst_5) (DistribSMul.toSMulZeroClass.{u4, u1} M A (AddMonoid.toAddZeroClass.{u1} A _inst_5) (DistribMulAction.toDistribSMul.{u4, u1} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u4, u2} M C (AddMonoid.toZero.{u2} C _inst_13) (DistribSMul.toSMulZeroClass.{u4, u2} M C (AddMonoid.toAddZeroClass.{u2} C _inst_13) (DistribMulAction.toDistribSMul.{u4, u2} M C _inst_4 _inst_13 _inst_14))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u4, u1, u2} (DistribMulActionHom.{u4, u1, u2} M _inst_4 A _inst_5 _inst_6 C _inst_13 _inst_14) M A C _inst_4 _inst_5 _inst_13 _inst_6 _inst_14 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u4, u1, u2} M _inst_4 A _inst_5 _inst_6 C _inst_13 _inst_14))) (DistribMulActionHom.comp.{u4, u1, u3, u2} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10 C _inst_13 _inst_14 g f) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (DistribMulActionHom.{u4, u3, u2} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => C) _x) (SMulHomClass.toFunLike.{max u3 u2, u4, u3, u2} (DistribMulActionHom.{u4, u3, u2} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) M B C (SMulZeroClass.toSMul.{u4, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u4, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u4, u3} M B _inst_4 _inst_9 _inst_10))) (SMulZeroClass.toSMul.{u4, u2} M C (AddMonoid.toZero.{u2} C _inst_13) (DistribSMul.toSMulZeroClass.{u4, u2} M C (AddMonoid.toAddZeroClass.{u2} C _inst_13) (DistribMulAction.toDistribSMul.{u4, u2} M C _inst_4 _inst_13 _inst_14))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u4, u3, u2} (DistribMulActionHom.{u4, u3, u2} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14) M B C _inst_4 _inst_9 _inst_13 _inst_10 _inst_14 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u4, u3, u2} M _inst_4 B _inst_9 _inst_10 C _inst_13 _inst_14))) g (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (DistribMulActionHom.{u4, u1, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u1 u3, u4, u1, u3} (DistribMulActionHom.{u4, u1, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u4, u1} M A (AddMonoid.toZero.{u1} A _inst_5) (DistribSMul.toSMulZeroClass.{u4, u1} M A (AddMonoid.toAddZeroClass.{u1} A _inst_5) (DistribMulAction.toDistribSMul.{u4, u1} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u4, u3} M B (AddMonoid.toZero.{u3} B _inst_9) (DistribSMul.toSMulZeroClass.{u4, u3} M B (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulAction.toDistribSMul.{u4, u3} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u3, u4, u1, u3} (DistribMulActionHom.{u4, u1, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u4, u1, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f x))
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.comp_apply DistribMulActionHom.comp_applyₓ'. -/
 @[simp]
 theorem comp_apply (g : B →+[M] C) (f : A →+[M] B) (x : A) : g.comp f x = g (f x) :=
@@ -652,7 +652,7 @@ variable {M R S}
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u3)} ((fun (_x : RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) => R -> S) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (RingHom.hasCoeT.{max u2 u3, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19) (MulSemiringActionHomClass.toRingHomClass.{max u2 u3, u1, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.mulSemiringActionHomClass.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20))))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (fun (_x : RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) => R -> S) (RingHom.hasCoeToFun.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (RingHom.hasCoeT.{max u2 u3, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19) (MulSemiringActionHomClass.toRingHomClass.{max u2 u3, u1, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.mulSemiringActionHomClass.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20))))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f)
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (RingHomClass.toRingHom.{max u2 u1, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19) (MulSemiringActionHomClass.toRingHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f)
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (RingHomClass.toRingHom.{max u2 u1, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19) (MulSemiringActionHomClass.toRingHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f)
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.coe_fn_coe MulSemiringActionHom.coe_fn_coeₓ'. -/
 @[norm_cast]
 theorem coe_fn_coe (f : R →+*[M] S) : ((f : R →+* S) : R → S) = f :=
@@ -663,7 +663,7 @@ theorem coe_fn_coe (f : R →+*[M] S) : ((f : R →+* S) : R → S) = f :=
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u3)} ((fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) => R -> S) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (DistribMulActionHom.{u1, u2, u3} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f)
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toDistribMulActionHom.{u3, u2, u1, max u2 u1} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f)
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toDistribMulActionHom.{u3, u2, u1, max u2 u1} M _inst_4 R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f)
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.coe_fn_coe' MulSemiringActionHom.coe_fn_coe'ₓ'. -/
 @[norm_cast]
 theorem coe_fn_coe' (f : R →+*[M] S) : ((f : R →+[M] S) : R → S) = f :=
@@ -674,7 +674,7 @@ theorem coe_fn_coe' (f : R →+*[M] S) : ((f : R →+[M] S) : R → S) = f :=
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] {f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20} {g : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20}, (forall (x : R), Eq.{succ u3} S (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) g x)) -> (Eq.{max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f g)
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] {f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20} {g : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20}, (forall (x : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) g x)) -> (Eq.{max (succ u2) (succ u1)} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f g)
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] {f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20} {g : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20}, (forall (x : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) g x)) -> (Eq.{max (succ u2) (succ u1)} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f g)
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.ext MulSemiringActionHom.extₓ'. -/
 @[ext]
 theorem ext : ∀ {f g : R →+*[M] S}, (∀ x, f x = g x) → f = g :=
@@ -685,7 +685,7 @@ theorem ext : ∀ {f g : R →+*[M] S}, (∀ x, f x = g x) → f = g :=
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] {f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20} {g : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20}, Iff (Eq.{max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f g) (forall (x : R), Eq.{succ u3} S (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) g x))
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] {f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20} {g : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20}, Iff (Eq.{max (succ u2) (succ u1)} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f g) (forall (x : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) g x))
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] {f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20} {g : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20}, Iff (Eq.{max (succ u2) (succ u1)} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f g) (forall (x : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) g x))
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.ext_iff MulSemiringActionHom.ext_iffₓ'. -/
 theorem ext_iff {f g : R →+*[M] S} : f = g ↔ ∀ x, f x = g x :=
   FunLike.ext_iff
@@ -695,7 +695,7 @@ theorem ext_iff {f g : R →+*[M] S} : f = g ↔ ∀ x, f x = g x :=
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{succ u3} S (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f (OfNat.ofNat.{u2} R 0 (OfNat.mk.{u2} R 0 (Zero.zero.{u2} R (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))))))) (OfNat.ofNat.{u3} S 0 (OfNat.mk.{u3} S 0 (Zero.zero.{u3} S (MulZeroClass.toHasZero.{u3} S (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))))))
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15))))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15))))) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15))))) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15))))) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15))))) _inst_19))))
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15))))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15))))) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15))))) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15))))) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15))))) _inst_19))))
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_zero MulSemiringActionHom.map_zeroₓ'. -/
 protected theorem map_zero (f : R →+*[M] S) : f 0 = 0 :=
   map_zero _
@@ -705,7 +705,7 @@ protected theorem map_zero (f : R →+*[M] S) : f 0 = 0 :=
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (x : R) (y : R), Eq.{succ u3} S (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toHasAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) x y)) (HAdd.hAdd.{u3, u3, u3} S S S (instHAdd.{u3} S (Distrib.toHasAdd.{u3} S (NonUnitalNonAssocSemiring.toDistrib.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19))))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f y))
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (x : R) (y : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) x y)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) x y)) (HAdd.hAdd.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) y) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (instHAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (Distrib.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (NonUnitalNonAssocSemiring.toDistrib.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) _inst_19))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f y))
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (x : R) (y : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) x y)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) x y)) (HAdd.hAdd.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) y) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (instHAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (Distrib.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (NonUnitalNonAssocSemiring.toDistrib.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) _inst_19))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f y))
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_add MulSemiringActionHom.map_addₓ'. -/
 protected theorem map_add (f : R →+*[M] S) (x y : R) : f (x + y) = f x + f y :=
   map_add _ _ _
@@ -715,7 +715,7 @@ protected theorem map_add (f : R →+*[M] S) (x y : R) : f (x + y) = f x + f y :
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] (R' : Type.{u2}) [_inst_17 : Ring.{u2} R'] [_inst_18 : MulSemiringAction.{u1, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17)] (S' : Type.{u3}) [_inst_21 : Ring.{u3} S'] [_inst_22 : MulSemiringAction.{u1, u3} M S' _inst_4 (Ring.toSemiring.{u3} S' _inst_21)] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (x : R'), Eq.{succ u3} S' (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f (Neg.neg.{u2} R' (SubNegMonoid.toHasNeg.{u2} R' (AddGroup.toSubNegMonoid.{u2} R' (AddGroupWithOne.toAddGroup.{u2} R' (AddCommGroupWithOne.toAddGroupWithOne.{u2} R' (Ring.toAddCommGroupWithOne.{u2} R' _inst_17))))) x)) (Neg.neg.{u3} S' (SubNegMonoid.toHasNeg.{u3} S' (AddGroup.toSubNegMonoid.{u3} S' (AddGroupWithOne.toAddGroup.{u3} S' (AddCommGroupWithOne.toAddGroupWithOne.{u3} S' (Ring.toAddCommGroupWithOne.{u3} S' _inst_21))))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f x))
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] (R' : Type.{u2}) [_inst_17 : Ring.{u2} R'] [_inst_18 : MulSemiringAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17)] (S' : Type.{u1}) [_inst_21 : Ring.{u1} S'] [_inst_22 : MulSemiringAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21)] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (x : R'), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') (Neg.neg.{u2} R' (Ring.toNeg.{u2} R' _inst_17) x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f (Neg.neg.{u2} R' (Ring.toNeg.{u2} R' _inst_17) x)) (Neg.neg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') x) (Ring.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') x) _inst_21) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f x))
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] (R' : Type.{u2}) [_inst_17 : Ring.{u2} R'] [_inst_18 : MulSemiringAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17)] (S' : Type.{u1}) [_inst_21 : Ring.{u1} S'] [_inst_22 : MulSemiringAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21)] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (x : R'), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') (Neg.neg.{u2} R' (Ring.toNeg.{u2} R' _inst_17) x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f (Neg.neg.{u2} R' (Ring.toNeg.{u2} R' _inst_17) x)) (Neg.neg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') x) (Ring.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') x) _inst_21) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f x))
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_neg MulSemiringActionHom.map_negₓ'. -/
 protected theorem map_neg (f : R' →+*[M] S') (x : R') : f (-x) = -f x :=
   map_neg _ _
@@ -725,7 +725,7 @@ protected theorem map_neg (f : R' →+*[M] S') (x : R') : f (-x) = -f x :=
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] (R' : Type.{u2}) [_inst_17 : Ring.{u2} R'] [_inst_18 : MulSemiringAction.{u1, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17)] (S' : Type.{u3}) [_inst_21 : Ring.{u3} S'] [_inst_22 : MulSemiringAction.{u1, u3} M S' _inst_4 (Ring.toSemiring.{u3} S' _inst_21)] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (x : R') (y : R'), Eq.{succ u3} S' (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f (HSub.hSub.{u2, u2, u2} R' R' R' (instHSub.{u2} R' (SubNegMonoid.toHasSub.{u2} R' (AddGroup.toSubNegMonoid.{u2} R' (AddGroupWithOne.toAddGroup.{u2} R' (AddCommGroupWithOne.toAddGroupWithOne.{u2} R' (Ring.toAddCommGroupWithOne.{u2} R' _inst_17)))))) x y)) (HSub.hSub.{u3, u3, u3} S' S' S' (instHSub.{u3} S' (SubNegMonoid.toHasSub.{u3} S' (AddGroup.toSubNegMonoid.{u3} S' (AddGroupWithOne.toAddGroup.{u3} S' (AddCommGroupWithOne.toAddGroupWithOne.{u3} S' (Ring.toAddCommGroupWithOne.{u3} S' _inst_21)))))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f y))
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] (R' : Type.{u2}) [_inst_17 : Ring.{u2} R'] [_inst_18 : MulSemiringAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17)] (S' : Type.{u1}) [_inst_21 : Ring.{u1} S'] [_inst_22 : MulSemiringAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21)] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (x : R') (y : R'), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') (HSub.hSub.{u2, u2, u2} R' R' R' (instHSub.{u2} R' (Ring.toSub.{u2} R' _inst_17)) x y)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f (HSub.hSub.{u2, u2, u2} R' R' R' (instHSub.{u2} R' (Ring.toSub.{u2} R' _inst_17)) x y)) (HSub.hSub.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') y) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') x) (instHSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') x) (Ring.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') x) _inst_21)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f y))
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] (R' : Type.{u2}) [_inst_17 : Ring.{u2} R'] [_inst_18 : MulSemiringAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17)] (S' : Type.{u1}) [_inst_21 : Ring.{u1} S'] [_inst_22 : MulSemiringAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21)] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (x : R') (y : R'), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') (HSub.hSub.{u2, u2, u2} R' R' R' (instHSub.{u2} R' (Ring.toSub.{u2} R' _inst_17)) x y)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f (HSub.hSub.{u2, u2, u2} R' R' R' (instHSub.{u2} R' (Ring.toSub.{u2} R' _inst_17)) x y)) (HSub.hSub.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') y) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') x) (instHSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') x) (Ring.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') x) _inst_21)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f y))
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_sub MulSemiringActionHom.map_subₓ'. -/
 protected theorem map_sub (f : R' →+*[M] S') (x y : R') : f (x - y) = f x - f y :=
   map_sub _ _ _
@@ -735,7 +735,7 @@ protected theorem map_sub (f : R' →+*[M] S') (x y : R') : f (x - y) = f x - f
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{succ u3} S (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f (OfNat.ofNat.{u2} R 1 (OfNat.mk.{u2} R 1 (One.one.{u2} R (AddMonoidWithOne.toOne.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))))))) (OfNat.ofNat.{u3} S 1 (OfNat.mk.{u3} S 1 (One.one.{u3} S (AddMonoidWithOne.toOne.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))))))
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_15)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_15)))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_15)))) 1 (One.toOfNat1.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_15)))) (Semiring.toOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_15)))) _inst_19)))
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_15)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_15)))) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_15)))) 1 (One.toOfNat1.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_15)))) (Semiring.toOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_15)))) _inst_19)))
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_one MulSemiringActionHom.map_oneₓ'. -/
 protected theorem map_one (f : R →+*[M] S) : f 1 = 1 :=
   map_one _
@@ -745,7 +745,7 @@ protected theorem map_one (f : R →+*[M] S) : f 1 = 1 :=
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (x : R) (y : R), Eq.{succ u3} S (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f (HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) x y)) (HMul.hMul.{u3, u3, u3} S S S (instHMul.{u3} S (Distrib.toHasMul.{u3} S (NonUnitalNonAssocSemiring.toDistrib.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19))))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f y))
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (x : R) (y : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) (HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) x y)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f (HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) x y)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) y) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) _inst_19)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f y))
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (x : R) (y : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) x y)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f (HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) x y)) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) y) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (NonUnitalNonAssocSemiring.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) _inst_19)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f y))
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_mul MulSemiringActionHom.map_mulₓ'. -/
 protected theorem map_mul (f : R →+*[M] S) (x y : R) : f (x * y) = f x * f y :=
   map_mul _ _ _
@@ -755,7 +755,7 @@ protected theorem map_mul (f : R →+*[M] S) (x y : R) : f (x * y) = f x * f y :
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (m : M) (x : R), Eq.{succ u3} S (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f (SMul.smul.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16)))) m x)) (SMul.smul.{u1, u3} M S (SMulZeroClass.toHasSmul.{u1, u3} M S (AddZeroClass.toHasZero.{u3} S (AddMonoid.toAddZeroClass.{u3} S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))))) (DistribSMul.toSmulZeroClass.{u1, u3} M S (AddMonoid.toAddZeroClass.{u3} S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19))))) (DistribMulAction.toDistribSMul.{u1, u3} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20)))) m (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f x))
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (m : M) (x : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) (HSMul.hSMul.{u3, u2, u2} M R R (instHSMul.{u3, u2} M R (SMulZeroClass.toSMul.{u3, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15)) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16))))) m x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f (HSMul.hSMul.{u3, u2, u2} M R R (instHSMul.{u3, u2} M R (SMulZeroClass.toSMul.{u3, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15)) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16))))) m x)) (HSMul.hSMul.{u3, u1, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (instHSMul.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (SMulZeroClass.toSMul.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) _inst_19)) (DistribSMul.toSMulZeroClass.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (AddMonoid.toAddZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (AddMonoidWithOne.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (NonAssocSemiring.toAddCommMonoidWithOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (NonAssocSemiring.toAddCommMonoidWithOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) x) _inst_4 _inst_19 _inst_20))))) m (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f x))
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (m : M) (x : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) (HSMul.hSMul.{u3, u2, u2} M R R (instHSMul.{u3, u2} M R (SMulZeroClass.toSMul.{u3, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15)) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16))))) m x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f (HSMul.hSMul.{u3, u2, u2} M R R (instHSMul.{u3, u2} M R (SMulZeroClass.toSMul.{u3, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_15)) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16))))) m x)) (HSMul.hSMul.{u3, u1, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (instHSMul.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (SMulZeroClass.toSMul.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) _inst_19)) (DistribSMul.toSMulZeroClass.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (AddMonoid.toAddZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (AddMonoidWithOne.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (NonAssocSemiring.toAddCommMonoidWithOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (NonAssocSemiring.toAddCommMonoidWithOne.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) (Semiring.toNonAssocSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) x) _inst_4 _inst_19 _inst_20))))) m (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f x))
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_smul MulSemiringActionHom.map_smulₓ'. -/
 protected theorem map_smul (f : R →+*[M] S) (m : M) (x : R) : f (m • x) = m • f x :=
   map_smul _ _ _
@@ -791,7 +791,7 @@ def comp (g : S →+*[M] T) (f : R →+*[M] S) : R →+*[M] T :=
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] {T : Type.{u4}} [_inst_23 : Semiring.{u4} T] [_inst_24 : MulSemiringAction.{u1, u4} M T _inst_4 _inst_23] (g : MulSemiringActionHom.{u1, u3, u4} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (x : R), Eq.{succ u4} T (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (MulSemiringActionHom.{u1, u2, u4} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24) (fun (_x : MulSemiringActionHom.{u1, u2, u4} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24) => R -> T) ([anonymous].{u1, u2, u4} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24) (MulSemiringActionHom.comp.{u1, u2, u3, u4} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20 T _inst_23 _inst_24 g f) x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (MulSemiringActionHom.{u1, u3, u4} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) (fun (_x : MulSemiringActionHom.{u1, u3, u4} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) => S -> T) ([anonymous].{u1, u3, u4} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) g (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f x))
 but is expected to have type
-  forall {M : Type.{u4}} [_inst_4 : Monoid.{u4} M] {R : Type.{u1}} [_inst_15 : Semiring.{u1} R] [_inst_16 : MulSemiringAction.{u4, u1} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u4, u3} M S _inst_4 _inst_19] {T : Type.{u2}} [_inst_23 : Semiring.{u2} T] [_inst_24 : MulSemiringAction.{u4, u2} M T _inst_4 _inst_23] (g : MulSemiringActionHom.{u4, u3, u2} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) (f : MulSemiringActionHom.{u4, u1, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (x : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => T) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulSemiringActionHom.{u4, u1, u2} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => T) _x) (SMulHomClass.toFunLike.{max u1 u2, u4, u1, u2} (MulSemiringActionHom.{u4, u1, u2} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24) M R T (SMulZeroClass.toSMul.{u4, u1} M R (AddMonoid.toZero.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u4, u1} M R (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15))))) (DistribMulAction.toDistribSMul.{u4, u1} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u4, u1} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u4, u2} M T (AddMonoid.toZero.{u2} T (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23))))) (DistribSMul.toSMulZeroClass.{u4, u2} M T (AddMonoid.toAddZeroClass.{u2} T (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23))))) (DistribMulAction.toDistribSMul.{u4, u2} M T _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23)))) (MulSemiringAction.toDistribMulAction.{u4, u2} M T _inst_4 _inst_23 _inst_24)))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u4, u1, u2} (MulSemiringActionHom.{u4, u1, u2} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24) M R T _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23)))) (MulSemiringAction.toDistribMulAction.{u4, u1} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u4, u2} M T _inst_4 _inst_23 _inst_24) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u1 u2, u4, u1, u2} (MulSemiringActionHom.{u4, u1, u2} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24) M R T _inst_4 _inst_15 _inst_23 (MulSemiringAction.toDistribMulAction.{u4, u1} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u4, u2} M T _inst_4 _inst_23 _inst_24) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u4, u1, u2} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24)))) (MulSemiringActionHom.comp.{u4, u1, u3, u2} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20 T _inst_23 _inst_24 g f) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (MulSemiringActionHom.{u4, u3, u2} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : S) => T) _x) (SMulHomClass.toFunLike.{max u3 u2, u4, u3, u2} (MulSemiringActionHom.{u4, u3, u2} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) M S T (SMulZeroClass.toSMul.{u4, u3} M S (AddMonoid.toZero.{u3} S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u4, u3} M S (AddMonoid.toAddZeroClass.{u3} S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19))))) (DistribMulAction.toDistribSMul.{u4, u3} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u4, u3} M S _inst_4 _inst_19 _inst_20)))) (SMulZeroClass.toSMul.{u4, u2} M T (AddMonoid.toZero.{u2} T (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23))))) (DistribSMul.toSMulZeroClass.{u4, u2} M T (AddMonoid.toAddZeroClass.{u2} T (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23))))) (DistribMulAction.toDistribSMul.{u4, u2} M T _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23)))) (MulSemiringAction.toDistribMulAction.{u4, u2} M T _inst_4 _inst_23 _inst_24)))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u4, u3, u2} (MulSemiringActionHom.{u4, u3, u2} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) M S T _inst_4 (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23)))) (MulSemiringAction.toDistribMulAction.{u4, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringAction.toDistribMulAction.{u4, u2} M T _inst_4 _inst_23 _inst_24) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u3 u2, u4, u3, u2} (MulSemiringActionHom.{u4, u3, u2} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) M S T _inst_4 _inst_19 _inst_23 (MulSemiringAction.toDistribMulAction.{u4, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringAction.toDistribMulAction.{u4, u2} M T _inst_4 _inst_23 _inst_24) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u4, u3, u2} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24)))) g (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (MulSemiringActionHom.{u4, u1, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u1 u3, u4, u1, u3} (MulSemiringActionHom.{u4, u1, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u4, u1} M R (AddMonoid.toZero.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u4, u1} M R (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15))))) (DistribMulAction.toDistribSMul.{u4, u1} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u4, u1} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u4, u3} M S (AddMonoid.toZero.{u3} S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u4, u3} M S (AddMonoid.toAddZeroClass.{u3} S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19))))) (DistribMulAction.toDistribSMul.{u4, u3} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u4, u3} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u3, u4, u1, u3} (MulSemiringActionHom.{u4, u1, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u4, u1} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u4, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u1 u3, u4, u1, u3} (MulSemiringActionHom.{u4, u1, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u4, u1} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u4, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u4, u1, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f x))
+  forall {M : Type.{u4}} [_inst_4 : Monoid.{u4} M] {R : Type.{u1}} [_inst_15 : Semiring.{u1} R] [_inst_16 : MulSemiringAction.{u4, u1} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u4, u3} M S _inst_4 _inst_19] {T : Type.{u2}} [_inst_23 : Semiring.{u2} T] [_inst_24 : MulSemiringAction.{u4, u2} M T _inst_4 _inst_23] (g : MulSemiringActionHom.{u4, u3, u2} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) (f : MulSemiringActionHom.{u4, u1, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (x : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => T) x) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MulSemiringActionHom.{u4, u1, u2} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => T) _x) (SMulHomClass.toFunLike.{max u1 u2, u4, u1, u2} (MulSemiringActionHom.{u4, u1, u2} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24) M R T (SMulZeroClass.toSMul.{u4, u1} M R (AddMonoid.toZero.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u4, u1} M R (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15))))) (DistribMulAction.toDistribSMul.{u4, u1} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u4, u1} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u4, u2} M T (AddMonoid.toZero.{u2} T (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23))))) (DistribSMul.toSMulZeroClass.{u4, u2} M T (AddMonoid.toAddZeroClass.{u2} T (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23))))) (DistribMulAction.toDistribSMul.{u4, u2} M T _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23)))) (MulSemiringAction.toDistribMulAction.{u4, u2} M T _inst_4 _inst_23 _inst_24)))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u4, u1, u2} (MulSemiringActionHom.{u4, u1, u2} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24) M R T _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23)))) (MulSemiringAction.toDistribMulAction.{u4, u1} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u4, u2} M T _inst_4 _inst_23 _inst_24) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u1 u2, u4, u1, u2} (MulSemiringActionHom.{u4, u1, u2} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24) M R T _inst_4 _inst_15 _inst_23 (MulSemiringAction.toDistribMulAction.{u4, u1} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u4, u2} M T _inst_4 _inst_23 _inst_24) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u4, u1, u2} M _inst_4 R _inst_15 _inst_16 T _inst_23 _inst_24)))) (MulSemiringActionHom.comp.{u4, u1, u3, u2} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20 T _inst_23 _inst_24 g f) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (MulSemiringActionHom.{u4, u3, u2} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : S) => T) _x) (SMulHomClass.toFunLike.{max u3 u2, u4, u3, u2} (MulSemiringActionHom.{u4, u3, u2} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) M S T (SMulZeroClass.toSMul.{u4, u3} M S (AddMonoid.toZero.{u3} S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u4, u3} M S (AddMonoid.toAddZeroClass.{u3} S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19))))) (DistribMulAction.toDistribSMul.{u4, u3} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u4, u3} M S _inst_4 _inst_19 _inst_20)))) (SMulZeroClass.toSMul.{u4, u2} M T (AddMonoid.toZero.{u2} T (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23))))) (DistribSMul.toSMulZeroClass.{u4, u2} M T (AddMonoid.toAddZeroClass.{u2} T (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23))))) (DistribMulAction.toDistribSMul.{u4, u2} M T _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23)))) (MulSemiringAction.toDistribMulAction.{u4, u2} M T _inst_4 _inst_23 _inst_24)))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u4, u3, u2} (MulSemiringActionHom.{u4, u3, u2} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) M S T _inst_4 (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (AddMonoidWithOne.toAddMonoid.{u2} T (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} T (NonAssocSemiring.toAddCommMonoidWithOne.{u2} T (Semiring.toNonAssocSemiring.{u2} T _inst_23)))) (MulSemiringAction.toDistribMulAction.{u4, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringAction.toDistribMulAction.{u4, u2} M T _inst_4 _inst_23 _inst_24) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u3 u2, u4, u3, u2} (MulSemiringActionHom.{u4, u3, u2} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24) M S T _inst_4 _inst_19 _inst_23 (MulSemiringAction.toDistribMulAction.{u4, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringAction.toDistribMulAction.{u4, u2} M T _inst_4 _inst_23 _inst_24) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u4, u3, u2} M _inst_4 S _inst_19 _inst_20 T _inst_23 _inst_24)))) g (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (MulSemiringActionHom.{u4, u1, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : R) => S) _x) (SMulHomClass.toFunLike.{max u1 u3, u4, u1, u3} (MulSemiringActionHom.{u4, u1, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u4, u1} M R (AddMonoid.toZero.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u4, u1} M R (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15))))) (DistribMulAction.toDistribSMul.{u4, u1} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u4, u1} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u4, u3} M S (AddMonoid.toZero.{u3} S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u4, u3} M S (AddMonoid.toAddZeroClass.{u3} S (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19))))) (DistribMulAction.toDistribSMul.{u4, u3} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u4, u3} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u3, u4, u1, u3} (MulSemiringActionHom.{u4, u1, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u3} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} S (NonAssocSemiring.toAddCommMonoidWithOne.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u4, u1} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u4, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u1 u3, u4, u1, u3} (MulSemiringActionHom.{u4, u1, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u4, u1} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u4, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u4, u1, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f x))
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.comp_apply MulSemiringActionHom.comp_applyₓ'. -/
 @[simp]
 theorem comp_apply (g : S →+*[M] T) (f : R →+*[M] S) (x : R) : g.comp f x = g (f x) :=
Diff
@@ -652,7 +652,7 @@ variable {M R S}
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u3)} ((fun (_x : RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) => R -> S) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (RingHom.hasCoeT.{max u2 u3, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19) (MulSemiringActionHomClass.toRingHomClass.{max u2 u3, u1, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.mulSemiringActionHomClass.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20))))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (fun (_x : RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) => R -> S) (RingHom.hasCoeToFun.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (RingHom.hasCoeT.{max u2 u3, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19) (MulSemiringActionHomClass.toRingHomClass.{max u2 u3, u1, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.mulSemiringActionHomClass.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20))))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f)
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (RingHomClass.toRingHom.{max u2 u1, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19) (MulSemiringActionHomClass.toRingHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f)
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (RingHomClass.toRingHom.{max u2 u1, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19) (MulSemiringActionHomClass.toRingHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f)
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.coe_fn_coe MulSemiringActionHom.coe_fn_coeₓ'. -/
 @[norm_cast]
 theorem coe_fn_coe (f : R →+*[M] S) : ((f : R →+* S) : R → S) = f :=
Diff
@@ -713,7 +713,7 @@ protected theorem map_add (f : R →+*[M] S) (x y : R) : f (x + y) = f x + f y :
 
 /- warning: mul_semiring_action_hom.map_neg -> MulSemiringActionHom.map_neg is a dubious translation:
 lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] (R' : Type.{u2}) [_inst_17 : Ring.{u2} R'] [_inst_18 : MulSemiringAction.{u1, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17)] (S' : Type.{u3}) [_inst_21 : Ring.{u3} S'] [_inst_22 : MulSemiringAction.{u1, u3} M S' _inst_4 (Ring.toSemiring.{u3} S' _inst_21)] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (x : R'), Eq.{succ u3} S' (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f (Neg.neg.{u2} R' (SubNegMonoid.toHasNeg.{u2} R' (AddGroup.toSubNegMonoid.{u2} R' (AddGroupWithOne.toAddGroup.{u2} R' (NonAssocRing.toAddGroupWithOne.{u2} R' (Ring.toNonAssocRing.{u2} R' _inst_17))))) x)) (Neg.neg.{u3} S' (SubNegMonoid.toHasNeg.{u3} S' (AddGroup.toSubNegMonoid.{u3} S' (AddGroupWithOne.toAddGroup.{u3} S' (NonAssocRing.toAddGroupWithOne.{u3} S' (Ring.toNonAssocRing.{u3} S' _inst_21))))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f x))
+  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] (R' : Type.{u2}) [_inst_17 : Ring.{u2} R'] [_inst_18 : MulSemiringAction.{u1, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17)] (S' : Type.{u3}) [_inst_21 : Ring.{u3} S'] [_inst_22 : MulSemiringAction.{u1, u3} M S' _inst_4 (Ring.toSemiring.{u3} S' _inst_21)] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (x : R'), Eq.{succ u3} S' (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f (Neg.neg.{u2} R' (SubNegMonoid.toHasNeg.{u2} R' (AddGroup.toSubNegMonoid.{u2} R' (AddGroupWithOne.toAddGroup.{u2} R' (AddCommGroupWithOne.toAddGroupWithOne.{u2} R' (Ring.toAddCommGroupWithOne.{u2} R' _inst_17))))) x)) (Neg.neg.{u3} S' (SubNegMonoid.toHasNeg.{u3} S' (AddGroup.toSubNegMonoid.{u3} S' (AddGroupWithOne.toAddGroup.{u3} S' (AddCommGroupWithOne.toAddGroupWithOne.{u3} S' (Ring.toAddCommGroupWithOne.{u3} S' _inst_21))))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f x))
 but is expected to have type
   forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] (R' : Type.{u2}) [_inst_17 : Ring.{u2} R'] [_inst_18 : MulSemiringAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17)] (S' : Type.{u1}) [_inst_21 : Ring.{u1} S'] [_inst_22 : MulSemiringAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21)] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (x : R'), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') (Neg.neg.{u2} R' (Ring.toNeg.{u2} R' _inst_17) x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f (Neg.neg.{u2} R' (Ring.toNeg.{u2} R' _inst_17) x)) (Neg.neg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') x) (Ring.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') x) _inst_21) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f x))
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_neg MulSemiringActionHom.map_negₓ'. -/
@@ -723,7 +723,7 @@ protected theorem map_neg (f : R' →+*[M] S') (x : R') : f (-x) = -f x :=
 
 /- warning: mul_semiring_action_hom.map_sub -> MulSemiringActionHom.map_sub is a dubious translation:
 lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] (R' : Type.{u2}) [_inst_17 : Ring.{u2} R'] [_inst_18 : MulSemiringAction.{u1, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17)] (S' : Type.{u3}) [_inst_21 : Ring.{u3} S'] [_inst_22 : MulSemiringAction.{u1, u3} M S' _inst_4 (Ring.toSemiring.{u3} S' _inst_21)] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (x : R') (y : R'), Eq.{succ u3} S' (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f (HSub.hSub.{u2, u2, u2} R' R' R' (instHSub.{u2} R' (SubNegMonoid.toHasSub.{u2} R' (AddGroup.toSubNegMonoid.{u2} R' (AddGroupWithOne.toAddGroup.{u2} R' (NonAssocRing.toAddGroupWithOne.{u2} R' (Ring.toNonAssocRing.{u2} R' _inst_17)))))) x y)) (HSub.hSub.{u3, u3, u3} S' S' S' (instHSub.{u3} S' (SubNegMonoid.toHasSub.{u3} S' (AddGroup.toSubNegMonoid.{u3} S' (AddGroupWithOne.toAddGroup.{u3} S' (NonAssocRing.toAddGroupWithOne.{u3} S' (Ring.toNonAssocRing.{u3} S' _inst_21)))))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f y))
+  forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] (R' : Type.{u2}) [_inst_17 : Ring.{u2} R'] [_inst_18 : MulSemiringAction.{u1, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17)] (S' : Type.{u3}) [_inst_21 : Ring.{u3} S'] [_inst_22 : MulSemiringAction.{u1, u3} M S' _inst_4 (Ring.toSemiring.{u3} S' _inst_21)] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (x : R') (y : R'), Eq.{succ u3} S' (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f (HSub.hSub.{u2, u2, u2} R' R' R' (instHSub.{u2} R' (SubNegMonoid.toHasSub.{u2} R' (AddGroup.toSubNegMonoid.{u2} R' (AddGroupWithOne.toAddGroup.{u2} R' (AddCommGroupWithOne.toAddGroupWithOne.{u2} R' (Ring.toAddCommGroupWithOne.{u2} R' _inst_17)))))) x y)) (HSub.hSub.{u3, u3, u3} S' S' S' (instHSub.{u3} S' (SubNegMonoid.toHasSub.{u3} S' (AddGroup.toSubNegMonoid.{u3} S' (AddGroupWithOne.toAddGroup.{u3} S' (AddCommGroupWithOne.toAddGroupWithOne.{u3} S' (Ring.toAddCommGroupWithOne.{u3} S' _inst_21)))))) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) => R' -> S') ([anonymous].{u1, u2, u3} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u3} S' _inst_21) _inst_22) f y))
 but is expected to have type
   forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] (R' : Type.{u2}) [_inst_17 : Ring.{u2} R'] [_inst_18 : MulSemiringAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17)] (S' : Type.{u1}) [_inst_21 : Ring.{u1} S'] [_inst_22 : MulSemiringAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21)] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (x : R') (y : R'), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') (HSub.hSub.{u2, u2, u2} R' R' R' (instHSub.{u2} R' (Ring.toSub.{u2} R' _inst_17)) x y)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f (HSub.hSub.{u2, u2, u2} R' R' R' (instHSub.{u2} R' (Ring.toSub.{u2} R' _inst_17)) x y)) (HSub.hSub.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') x) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') y) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') x) (instHSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') x) (Ring.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') x) _inst_21)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) R' (fun (_x : R') => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R') => S') _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' (SMulZeroClass.toSMul.{u3, u2} M R' (AddMonoid.toZero.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R' (AddMonoid.toAddZeroClass.{u2} R' (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17)))))) (DistribMulAction.toDistribSMul.{u3, u2} M R' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18)))) (SMulZeroClass.toSMul.{u3, u1} M S' (AddMonoid.toZero.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S' (AddMonoid.toAddZeroClass.{u1} S' (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21)))))) (DistribMulAction.toDistribSMul.{u3, u1} M S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R' (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R' (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R' (Semiring.toNonAssocSemiring.{u2} R' (Ring.toSemiring.{u2} R' _inst_17))))) (AddMonoidWithOne.toAddMonoid.{u1} S' (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S' (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S' (Semiring.toNonAssocSemiring.{u1} S' (Ring.toSemiring.{u1} S' _inst_21))))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22) M R' S' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) (Ring.toSemiring.{u1} S' _inst_21) (MulSemiringAction.toDistribMulAction.{u3, u2} M R' _inst_4 (Ring.toSemiring.{u2} R' _inst_17) _inst_18) (MulSemiringAction.toDistribMulAction.{u3, u1} M S' _inst_4 (Ring.toSemiring.{u1} S' _inst_21) _inst_22) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R' (Ring.toSemiring.{u2} R' _inst_17) _inst_18 S' (Ring.toSemiring.{u1} S' _inst_21) _inst_22)))) f y))
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.map_sub MulSemiringActionHom.map_subₓ'. -/
Diff
@@ -326,7 +326,7 @@ theorem toFun_eq_coe (f : A →+[M] B) : f.toFun = ⇑f :=
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u1, u2} M A _inst_4 _inst_5] {B : Type.{u3}} [_inst_9 : AddMonoid.{u3} B] [_inst_10 : DistribMulAction.{u1, u3} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u3)} ((fun (_x : AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) => A -> B) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u3) (succ u2)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u3) (succ u2)} a b] => self.0) (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u3) (succ u2)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u3) (succ u2)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (AddMonoidHom.hasCoeT.{u2, u3, max u2 u3} A B (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulActionHomClass.toAddMonoidHomClass.{max u2 u3, u1, u2, u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.distribMulActionHomClass.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))))) f)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (fun (_x : AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) => A -> B) (AddMonoidHom.hasCoeToFun.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u3) (succ u2)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u3) (succ u2)} a b] => self.0) (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u3) (succ u2)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u3) (succ u2)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoidHom.{u2, u3} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9)) (AddMonoidHom.hasCoeT.{u2, u3, max u2 u3} A B (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u3} B _inst_9) (DistribMulActionHomClass.toAddMonoidHomClass.{max u2 u3, u1, u2, u3} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.distribMulActionHomClass.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (fun (_x : DistribMulActionHom.{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) => A -> B) ([anonymous].{u1, u2, u3} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) f)
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u1)} (forall (a : A), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : A) => B) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : A) => B) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)) A B (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (AddZeroClass.toAdd.{u1} B (AddMonoid.toAddZeroClass.{u1} B _inst_9)) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)) A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9) (AddMonoidHom.addMonoidHomClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)))) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} A B (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulActionHomClass.toAddMonoidHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f)
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {A : Type.{u2}} [_inst_5 : AddMonoid.{u2} A] [_inst_6 : DistribMulAction.{u3, u2} M A _inst_4 _inst_5] {B : Type.{u1}} [_inst_9 : AddMonoid.{u1} B] [_inst_10 : DistribMulAction.{u3, u1} M B _inst_4 _inst_9] (f : DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10), Eq.{max (succ u2) (succ u1)} (forall (a : A), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => B) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => B) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)) A B (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_5)) (AddZeroClass.toAdd.{u1} B (AddMonoid.toAddZeroClass.{u1} B _inst_9)) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)) A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9) (AddMonoidHom.addMonoidHomClass.{u2, u1} A B (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9)))) (AddMonoidHomClass.toAddMonoidHom.{u2, u1, max u2 u1} A B (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) (AddMonoid.toAddZeroClass.{u2} A _inst_5) (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulActionHomClass.toAddMonoidHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B (SMulZeroClass.toSMul.{u3, u2} M A (AddMonoid.toZero.{u2} A _inst_5) (DistribSMul.toSMulZeroClass.{u3, u2} M A (AddMonoid.toAddZeroClass.{u2} A _inst_5) (DistribMulAction.toDistribSMul.{u3, u2} M A _inst_4 _inst_5 _inst_6))) (SMulZeroClass.toSMul.{u3, u1} M B (AddMonoid.toZero.{u1} B _inst_9) (DistribSMul.toSMulZeroClass.{u3, u1} M B (AddMonoid.toAddZeroClass.{u1} B _inst_9) (DistribMulAction.toDistribSMul.{u3, u1} M B _inst_4 _inst_9 _inst_10))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10) M A B _inst_4 _inst_5 _inst_9 _inst_6 _inst_10 (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} M _inst_4 A _inst_5 _inst_6 B _inst_9 _inst_10))) f)
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.coe_fn_coe DistribMulActionHom.coe_fn_coeₓ'. -/
 @[norm_cast]
 theorem coe_fn_coe (f : A →+[M] B) : ((f : A →+ B) : A → B) = f :=
@@ -652,7 +652,7 @@ variable {M R S}
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u3)} ((fun (_x : RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) => R -> S) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (RingHom.hasCoeT.{max u2 u3, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19) (MulSemiringActionHomClass.toRingHomClass.{max u2 u3, u1, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.mulSemiringActionHomClass.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20))))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (fun (_x : RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) => R -> S) (RingHom.hasCoeToFun.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (RingHom.hasCoeT.{max u2 u3, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19) (MulSemiringActionHomClass.toRingHomClass.{max u2 u3, u1, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.mulSemiringActionHomClass.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20))))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f)
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (RingHomClass.toRingHom.{max u2 u1, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19) (MulSemiringActionHomClass.toRingHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f)
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (RingHomClass.toRingHom.{max u2 u1, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19) (MulSemiringActionHomClass.toRingHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f)
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.coe_fn_coe MulSemiringActionHom.coe_fn_coeₓ'. -/
 @[norm_cast]
 theorem coe_fn_coe (f : R →+*[M] S) : ((f : R →+* S) : R → S) = f :=
Diff
@@ -652,7 +652,7 @@ variable {M R S}
 lean 3 declaration is
   forall {M : Type.{u1}} [_inst_4 : Monoid.{u1} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u1, u2} M R _inst_4 _inst_15] {S : Type.{u3}} [_inst_19 : Semiring.{u3} S] [_inst_20 : MulSemiringAction.{u1, u3} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u3)} ((fun (_x : RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) => R -> S) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (RingHom.hasCoeT.{max u2 u3, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19) (MulSemiringActionHomClass.toRingHomClass.{max u2 u3, u1, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.mulSemiringActionHomClass.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20))))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (fun (_x : RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) => R -> S) (RingHom.hasCoeToFun.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (RingHom.{u2, u3} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19)) (RingHom.hasCoeT.{max u2 u3, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u3} S _inst_19) (MulSemiringActionHomClass.toRingHomClass.{max u2 u3, u1, u2, u3} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u1, u3} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.mulSemiringActionHomClass.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20))))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) (fun (_x : MulSemiringActionHom.{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) => R -> S) ([anonymous].{u1, u2, u3} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) f)
 but is expected to have type
-  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (RingHomClass.toRingHom.{max u2 u1, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19) (MulSemiringActionHomClass.toRingHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f)
+  forall {M : Type.{u3}} [_inst_4 : Monoid.{u3} M] {R : Type.{u2}} [_inst_15 : Semiring.{u2} R] [_inst_16 : MulSemiringAction.{u3, u2} M R _inst_4 _inst_15] {S : Type.{u1}} [_inst_19 : Semiring.{u1} S] [_inst_20 : MulSemiringAction.{u3, u1} M S _inst_4 _inst_19] (f : MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20), Eq.{max (succ u2) (succ u1)} (forall (a : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19)) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (RingHomClass.toRingHom.{max u2 u1, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R S (Semiring.toNonAssocSemiring.{u2} R _inst_15) (Semiring.toNonAssocSemiring.{u1} S _inst_19) (MulSemiringActionHomClass.toRingHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : R) => S) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S (SMulZeroClass.toSMul.{u3, u2} M R (AddMonoid.toZero.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribSMul.toSMulZeroClass.{u3, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15))))) (DistribMulAction.toDistribSMul.{u3, u2} M R _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16)))) (SMulZeroClass.toSMul.{u3, u1} M S (AddMonoid.toZero.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribSMul.toSMulZeroClass.{u3, u1} M S (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19))))) (DistribMulAction.toDistribSMul.{u3, u1} M S _inst_4 (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_15)))) (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_19)))) (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (MulSemiringActionHom.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20) M R S _inst_4 _inst_15 _inst_19 (MulSemiringAction.toDistribMulAction.{u3, u2} M R _inst_4 _inst_15 _inst_16) (MulSemiringAction.toDistribMulAction.{u3, u1} M S _inst_4 _inst_19 _inst_20) (MulSemiringActionHom.instMulSemiringActionHomClassMulSemiringActionHomToDistribMulActionToDistribMulAction.{u3, u2, u1} M _inst_4 R _inst_15 _inst_16 S _inst_19 _inst_20)))) f)
 Case conversion may be inaccurate. Consider using '#align mul_semiring_action_hom.coe_fn_coe MulSemiringActionHom.coe_fn_coeₓ'. -/
 @[norm_cast]
 theorem coe_fn_coe (f : R →+*[M] S) : ((f : R →+* S) : R → S) = f :=

Changes in mathlib4

mathlib3
mathlib4
chore: split Algebra.Module.Basic (#12501)

Similar to #12486, which did this for Algebra.Algebra.Basic.

Splits Algebra.Module.Defs off Algebra.Module.Basic. Most imports only need the Defs file, which has significantly smaller imports. The remaining Algebra.Module.Basic is now a grab-bag of unrelated results, and should probably be split further or rehomed.

This is mostly motivated by the wasted effort during minimization upon encountering Algebra.Module.Basic.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com>

Diff
@@ -6,7 +6,7 @@ Authors: Kenny Lau, Antoine Chambert-Loir
 -/
 
 import Mathlib.Algebra.GroupRingAction.Basic
-import Mathlib.Algebra.Module.Basic
+import Mathlib.Algebra.Module.Defs
 import Mathlib.Algebra.Ring.Equiv
 import Mathlib.Algebra.Group.Hom.CompTypeclasses
 
chore: classify porting notes referring to missing linters (#12098)

Reference the newly created issues #12094 and #12096, as well as the pre-existing #5171. Change all references to #10927 to #5171. Some of these changes were not labelled as "porting note"; change this for good measure.

Diff
@@ -63,7 +63,7 @@ variable (Z : Type*) [SMul P Z]
 /-- Equivariant functions :
 When `φ : M → N` is a function, and types `X` and `Y` are endowed with actions of `M` and `N`,
 a function `f : X → Y` is `φ`-equivariant if `f (m • x) = (φ m) • (f x)`.  -/
--- Porting note: This linter does not exist yet
+-- Porting note(#5171): this linter isn't ported yet.
 -- @[nolint has_nonempty_instance]
 structure MulActionHom where
   /-- The underlying function. -/
@@ -626,7 +626,7 @@ variable (T : Type*) [Semiring T] [MulSemiringAction P T]
 -- variable [AddMonoid N'] [DistribMulAction S N']
 
 /-- Equivariant ring homomorphisms. -/
--- Porting note: This linter does not exist yet
+-- Porting note(#5171): this linter isn't ported yet.
 -- @[nolint has_nonempty_instance]
 structure MulSemiringActionHom extends R →ₑ+[φ] S, R →+* S
 #align mul_semiring_action_hom MulSemiringActionHom
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
@@ -1,10 +1,14 @@
 /-
 Copyright (c) 2020 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
-Authors: Kenny Lau
+Authors: Kenny Lau, Antoine Chambert-Loir
+
 -/
+
 import Mathlib.Algebra.GroupRingAction.Basic
 import Mathlib.Algebra.Module.Basic
+import Mathlib.Algebra.Ring.Equiv
+import Mathlib.Algebra.Group.Hom.CompTypeclasses
 
 #align_import algebra.hom.group_action from "leanprover-community/mathlib"@"e7bab9a85e92cf46c02cb4725a7be2f04691e3a7"
 
@@ -13,201 +17,334 @@ import Mathlib.Algebra.Module.Basic
 
 ## Main definitions
 
-* `MulActionHom M X Y`, the type of equivariant functions from `X` to `Y`, where `M` is a monoid
-  that acts on the types `X` and `Y`.
-* `DistribMulActionHom M A B`, the type of equivariant additive monoid homomorphisms
-  from `A` to `B`, where `M` is a monoid that acts on the additive monoids `A` and `B`.
-* `MulSemiringActionHom M R S`, the type of equivariant ring homomorphisms
-  from `R` to `S`, where `M` is a monoid that acts on the rings `R` and `S`.
+* `MulActionHom φ X Y`, the type of equivariant functions from `X` to `Y`,
+  where `φ : M → N` is a map, `M` acting on the type `X` and `N` acting on the type of `Y`.
+* `DistribMulActionHom φ A B`,
+  the type of equivariant additive monoid homomorphisms from `A` to `B`,
+  where `φ : M → N` is a morphism of monoids,
+  `M` acting on the additive monoid `A` and `N` acting on the additive monoid of `B`
+* `SMulSemiringHom φ R S`, the type of equivariant ring homomorphisms
+  from `R` to `S`, where `φ : M → N` is a morphism of monoids,
+  `M` acting on the ring `R` and `N` acting on the ring `S`.
 
 The above types have corresponding classes:
-* `SMulHomClass F M X Y` states that `F` is a type of bundled `X → Y` homs
-  preserving scalar multiplication by `M`
-* `DistribMulActionHomClass F M A B` states that `F` is a type of bundled `A → B` homs
-  preserving the additive monoid structure and scalar multiplication by `M`
-* `MulSemiringActionHomClass F M R S` states that `F` is a type of bundled `R → S` homs
-  preserving the ring structure and scalar multiplication by `M`
-
-## Notations
-
-* `X →[M] Y` is `MulActionHom M X Y`.
-* `A →+[M] B` is `DistribMulActionHom M A B`.
-* `R →+*[M] S` is `MulSemiringActionHom M R S`.
-
+* `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 M) X Y`
+* `A →+[M] B` is `DistribMulActionHom (MonoidHom.id M) A B`
+* `R →+*[M] S` is `MulSemiringActionHom (MonoidHom.id M) R S`
 -/
 
-set_option autoImplicit true
-
 assert_not_exists Submonoid
 
-variable (M' : Type*)
-variable (X : Type*) [SMul M' X]
-variable (Y : Type*) [SMul M' Y]
-variable (Z : Type*) [SMul M' Z]
-variable (M : Type*) [Monoid M]
-variable (A : Type*) [AddMonoid A] [DistribMulAction M A]
-variable (A' : Type*) [AddGroup A'] [DistribMulAction M A']
-variable (B : Type*) [AddMonoid B] [DistribMulAction M B]
-variable (B' : Type*) [AddGroup B'] [DistribMulAction M B']
-variable (C : Type*) [AddMonoid C] [DistribMulAction M C]
-variable (R : Type*) [Semiring R] [MulSemiringAction M R]
-variable (R' : Type*) [Ring R'] [MulSemiringAction M R']
-variable (S : Type*) [Semiring S] [MulSemiringAction M S]
-variable (S' : Type*) [Ring S'] [MulSemiringAction M S']
-variable (T : Type*) [Semiring T] [MulSemiringAction M T]
+section MulActionHom
+
+variable {M' : Type*}
+variable {M : Type*} {N : Type*} {P : Type*}
+variable (φ : M → N) (ψ : N → P) (χ : M → P)
+variable (X : Type*) [SMul M X] [SMul M' X]
+variable (Y : Type*) [SMul N Y] [SMul M' Y]
+variable (Z : Type*) [SMul P Z]
 
-/-- Equivariant functions. -/
+/-- Equivariant functions :
+When `φ : M → N` is a function, and types `X` and `Y` are endowed with actions of `M` and `N`,
+a function `f : X → Y` is `φ`-equivariant if `f (m • x) = (φ m) • (f x)`.  -/
 -- Porting note: This linter does not exist yet
 -- @[nolint has_nonempty_instance]
 structure MulActionHom where
   /-- The underlying function. -/
   protected toFun : X → Y
-  /-- The proposition that the function preserves the action. -/
-  protected map_smul' : ∀ (m : M') (x : X), toFun (m • x) = m • toFun x
-#align mul_action_hom MulActionHom
+  /-- The proposition that the function commutes with the actions. -/
+  protected map_smul' : ∀ (m : M) (x : X), toFun (m • x) = (φ m) • toFun x
 
 /- Porting note: local notation given a name, conflict with Algebra.Hom.GroupAction
  see https://github.com/leanprover/lean4/issues/2000 -/
-@[inherit_doc]
-notation:25 (name := «MulActionHomLocal≺») X " →[" M:25 "] " Y:0 => MulActionHom M X Y
+/-- `φ`-equivariant functions `X → Y`,
+where `φ : M → N`, where `M` and `N` act on `X` and `Y` respectively -/
+notation:25 (name := «MulActionHomLocal≺») X " →ₑ[" φ:25 "] " Y:0 => MulActionHom φ X Y
+
+/-- `M`-equivariant functions `X → Y` with respect to the action of `M`
 
-/-- `SMulHomClass F M X Y` states that `F` is a type of morphisms preserving
-scalar multiplication by `M`.
+This is the same as `X →ₑ[@id M] Y` -/
+notation:25 (name := «MulActionHomIdLocal≺») X " →[" M:25 "] " Y:0 => MulActionHom (@id M) X Y
+
+
+
+/-- `MulActionSemiHomClass F φ X Y` states that
+  `F` is a type of morphisms which are `φ`-equivariant.
 
 You should extend this class when you extend `MulActionHom`. -/
-class SMulHomClass (F : Type*) (M X Y : outParam <| Type*) [SMul M X] [SMul M Y]
-    [FunLike F X Y] : Prop where
+class MulActionSemiHomClass (F : Type*)
+    {M N : outParam (Type*)} (φ : outParam (M → N))
+    (X Y : outParam (Type*)) [SMul M X] [SMul N Y] [FunLike F X Y] : Prop
+   where
   /-- The proposition that the function preserves the action. -/
-  map_smul : ∀ (f : F) (c : M) (x : X), f (c • x) = c • f x
-#align smul_hom_class SMulHomClass
+  map_smulₛₗ : ∀ (f : F) (c : M) (x : X), f (c • x) = (φ c) • (f x)
+#align smul_hom_class MulActionSemiHomClass
 
-/- porting note: Removed a @[nolint dangerousInstance] for SMulHomClass
- not dangerous due to outParam -/
+export MulActionSemiHomClass (map_smulₛₗ)
+
+/-- `MulActionHomClass F M X Y` states that `F` is a type of
+morphisms which are equivariant with respect to actions of `M`
+This is an abbreviation of `MulActionSemiHomClass`. -/
+abbrev MulActionHomClass (F : Type*) (M : outParam (Type*))
+    (X Y : outParam (Type*)) [SMul M X] [SMul M Y] [FunLike F X Y] :=
+  MulActionSemiHomClass F (@id M) X Y
+
+instance : FunLike (MulActionHom φ X Y) X Y where
+  coe := MulActionHom.toFun
+  coe_injective' f g h := by cases f; cases g; congr
 
-export SMulHomClass (map_smul)
+@[simp]
+theorem map_smul {F M X Y : Type*} [SMul M X] [SMul M Y]
+    [FunLike F X Y] [MulActionHomClass F M X Y]
+    (f : F) (c : M) (x : X) : f (c • x) = c • f x :=
+  map_smulₛₗ f c x
 
-attribute [simp] map_smul
+-- attribute [simp] map_smulₛₗ
 
 -- Porting note: removed has_coe_to_fun instance, coercions handled differently now
 #noalign mul_action_hom.has_coe_to_fun
 
-instance : FunLike (X →[M'] Y) X Y where
-  coe := MulActionHom.toFun
-  coe_injective' f g h := by cases f; cases g; congr
-
-instance : SMulHomClass (X →[M'] Y) M' X Y where
-  map_smul := MulActionHom.map_smul'
+instance : MulActionSemiHomClass (X →ₑ[φ] Y) φ X Y where
+  map_smulₛₗ := MulActionHom.map_smul'
 
 initialize_simps_projections MulActionHom (toFun → apply)
 
 namespace MulActionHom
 
-variable {M M' X Y}
+variable {φ X Y}
+variable {F : Type*} [FunLike F X Y]
 
 /- porting note: inserted following def & instance for consistent coercion behaviour,
 see also Algebra.Hom.Group -/
-/-- Turn an element of a type `F` satisfying `SMulHomClass F M X Y` into an actual
-`MulActionHom`. This is declared as the default coercion from `F` to `MulActionHom M X Y`. -/
+/-- Turn an element of a type `F` satisfying `MulActionSemiHomClass F φ X Y`
+  into an actual `MulActionHom`.
+  This is declared as the default coercion from `F` to `MulActionSemiHom φ X Y`. -/
 @[coe]
-def _root_.SMulHomClass.toMulActionHom [SMul M X] [SMul M Y] [FunLike F X Y]
-    [SMulHomClass F M X Y] (f : F) :
-    X →[M] Y where
+def _root_.MulActionSemiHomClass.toMulActionHom [MulActionSemiHomClass F φ X Y] (f : F) :
+    X →ₑ[φ] Y where
   toFun := DFunLike.coe f
-  map_smul' := map_smul f
+  map_smul' := map_smulₛₗ f
 
-/-- Any type satisfying `SMulHomClass` can be cast into `MulActionHom` via
-  `SMulHomClass.toMulActionHom`. -/
-instance [SMul M X] [SMul M Y] [FunLike F X Y] [SMulHomClass F M X Y] : CoeTC F (X →[M] Y) :=
-  ⟨SMulHomClass.toMulActionHom⟩
+/-- Any type satisfying `MulActionSemiHomClass` can be cast into `MulActionHom` via
+  `MulActionHomSemiClass.toMulActionHom`. -/
+instance [MulActionSemiHomClass F φ X Y] : CoeTC F (X →ₑ[φ] Y) :=
+  ⟨MulActionSemiHomClass.toMulActionHom⟩
 
 variable (M' X Y F) in
 /-- If Y/X/M forms a scalar tower, any map X → Y preserving X-action also preserves M-action. -/
 theorem _root_.IsScalarTower.smulHomClass [MulOneClass X] [SMul X Y] [IsScalarTower M' X Y]
-    [FunLike F X Y] [SMulHomClass F X X Y] : SMulHomClass F M' X Y where
-  map_smul f m x := by
-    rw [← mul_one (m • x), ← smul_eq_mul, map_smul, smul_assoc, ← map_smul, smul_eq_mul, mul_one]
+    [MulActionHomClass F X X Y] : MulActionHomClass F M' X Y where
+  map_smulₛₗ f m x := by
+    rw [← mul_one (m • x), ← smul_eq_mul, map_smul, smul_assoc, ← map_smul,
+      smul_eq_mul, mul_one, id_eq]
 
 protected theorem map_smul (f : X →[M'] Y) (m : M') (x : X) : f (m • x) = m • f x :=
   map_smul f m x
 #align mul_action_hom.map_smul MulActionHom.map_smul
 
 @[ext]
-theorem ext {f g : X →[M'] Y} : (∀ x, f x = g x) → f = g :=
+theorem ext {f g : X →ₑ[φ] Y} :
+    (∀ x, f x = g x) → f = g :=
   DFunLike.ext f g
 #align mul_action_hom.ext MulActionHom.ext
 
-theorem ext_iff {f g : X →[M'] Y} : f = g ↔ ∀ x, f x = g x :=
+theorem ext_iff  {f g : X →ₑ[φ] Y} :
+    f = g ↔ ∀ x, f x = g x :=
   DFunLike.ext_iff
 #align mul_action_hom.ext_iff MulActionHom.ext_iff
 
-protected theorem congr_fun {f g : X →[M'] Y} (h : f = g) (x : X) : f x = g x :=
+protected theorem congr_fun {f g : X →ₑ[φ] Y} (h : f = g) (x : X) :
+    f x = g x :=
   DFunLike.congr_fun h _
 #align mul_action_hom.congr_fun MulActionHom.congr_fun
 
-variable (M M')
+/-- Two equal maps on scalars give rise to an equivariant map for identity -/
+def ofEq {φ' : M → N} (h : φ = φ') (f : X →ₑ[φ] Y) : X →ₑ[φ'] Y
+    where
+  toFun := f.toFun
+  map_smul' m a := h ▸ f.map_smul' m a
+#align equivariant_map.of_eq MulActionHom.ofEq
+
+@[simp]
+theorem ofEq_coe {φ' : M → N} (h : φ = φ') (f : X →ₑ[φ] Y) :
+    (f.ofEq h).toFun = f.toFun := rfl
+#align equivariant_map.of_eq_coe MulActionHom.ofEq_coe
+
+@[simp]
+theorem ofEq_apply {φ' : M → N} (h : φ = φ') (f : X →ₑ[φ] Y) (a : X) :
+    (f.ofEq h) a = f a :=
+  rfl
+#align equivariant_map.of_eq_apply MulActionHom.ofEq_apply
+
+
+variable {ψ χ} (M N)
 
 /-- The identity map as an equivariant map. -/
-protected def id : X →[M'] X :=
+protected def id : X →[M] X :=
   ⟨id, fun _ _ => rfl⟩
 #align mul_action_hom.id MulActionHom.id
 
+variable {M N Z}
+
 @[simp]
-theorem id_apply (x : X) : MulActionHom.id M' x = x :=
+theorem id_apply (x : X) :
+    MulActionHom.id M x = x :=
   rfl
 #align mul_action_hom.id_apply MulActionHom.id_apply
 
-variable {M M' Z}
+end MulActionHom
+
+namespace MulActionHom
+open MulActionHom
+
+variable {φ ψ χ X Y Z}
+
+-- attribute [instance] CompTriple.id_comp CompTriple.comp_id
 
 /-- Composition of two equivariant maps. -/
-def comp (g : Y →[M'] Z) (f : X →[M'] Y) : X →[M'] Z :=
+def comp (g : Y →ₑ[ψ] Z) (f : X →ₑ[φ] Y) [κ : CompTriple φ ψ χ] :
+    X →ₑ[χ] Z :=
   ⟨g ∘ f, fun m x =>
     calc
-      g (f (m • x)) = g (m • f x) := by rw [f.map_smul]
-      _ = m • g (f x) := g.map_smul _ _⟩
+      g (f (m • x)) = g (φ m • f x) := by rw [map_smulₛₗ]
+      _ = ψ (φ m) • g (f x) := by rw [map_smulₛₗ]
+      _ = (ψ ∘ φ) m • g (f x) := rfl
+      _ = χ m • g (f x) := by rw [κ.comp_eq] ⟩
 #align mul_action_hom.comp MulActionHom.comp
 
 @[simp]
-theorem comp_apply (g : Y →[M'] Z) (f : X →[M'] Y) (x : X) : g.comp f x = g (f x) :=
-  rfl
+theorem comp_apply
+    (g : Y →ₑ[ψ] Z) (f : X →ₑ[φ] Y) [CompTriple φ ψ χ] (x : X) :
+    g.comp f x = g (f x) := rfl
 #align mul_action_hom.comp_apply MulActionHom.comp_apply
 
 @[simp]
-theorem id_comp (f : X →[M'] Y) : (MulActionHom.id M').comp f = f :=
+theorem id_comp (f : X →ₑ[φ] Y) :
+    (MulActionHom.id N).comp f = f :=
   ext fun x => by rw [comp_apply, id_apply]
 #align mul_action_hom.id_comp MulActionHom.id_comp
 
 @[simp]
-theorem comp_id (f : X →[M'] Y) : f.comp (MulActionHom.id M') = f :=
+theorem comp_id (f : X →ₑ[φ] Y) :
+    f.comp (MulActionHom.id M) = f :=
   ext fun x => by rw [comp_apply, id_apply]
 #align mul_action_hom.comp_id MulActionHom.comp_id
 
-variable {A B}
-
+@[simp]
+theorem comp_assoc {Q T : Type*} [SMul Q T]
+    {η : P → Q} {θ : M → Q} {ζ : N → Q}
+    (h : Z →ₑ[η] T) (g : Y →ₑ[ψ] Z) (f : X →ₑ[φ] Y)
+    [CompTriple φ ψ χ] [CompTriple χ η θ]
+    [CompTriple ψ η ζ] [CompTriple φ ζ θ] :
+    h.comp (g.comp f) = (h.comp g).comp f :=
+  ext fun _ => rfl
+#align equivariant_map.comp_assoc MulActionHom.comp_assoc
+
+variable {φ' : N → M}
+variable {Y₁ : Type*} [SMul M Y₁]
 /-- The inverse of a bijective equivariant map is equivariant. -/
 @[simps]
-def inverse (f : A →[M] B) (g : B → A) (h₁ : Function.LeftInverse g f)
-    (h₂ : Function.RightInverse g f) : B →[M] A where
+def inverse (f : X →[M] Y₁) (g : Y₁ → X)
+    (h₁ : Function.LeftInverse g f) (h₂ : Function.RightInverse g f) : Y₁ →[M] X
+    where
   toFun := g
   map_smul' m x :=
     calc
       g (m • x) = g (m • f (g x)) := by rw [h₂]
-      _ = g (f (m • g x)) := by rw [f.map_smul]
+      _ = g (f (m • g x)) := by simp only [map_smul, id_eq]
       _ = m • g x := by rw [h₁]
-#align mul_action_hom.inverse_to_fun MulActionHom.inverse_apply
-#align mul_action_hom.inverse MulActionHom.inverse
 
-end MulActionHom
 
-/-- If actions of `M` and `N` on `α` commute, then for `c : M`, `(c • · : α → α)` is an `N`-action
-homomorphism. -/
+/-- The inverse of a bijective equivariant map is equivariant. -/
 @[simps]
-def SMulCommClass.toMulActionHom {M} (N α : Type*) [SMul M α] [SMul N α] [SMulCommClass M N α]
-    (c : M) : α →[N] α where
+def inverse' (f : X →ₑ[φ] Y) (g : Y → X) (k : Function.RightInverse φ' φ)
+    (h₁ : Function.LeftInverse g f) (h₂ : Function.RightInverse g f) :
+    Y →ₑ[φ'] X where
+  toFun := g
+  map_smul' m x :=
+    calc
+      g (m • x) = g (m • f (g x)) := by rw [h₂]
+      _ = g ((φ (φ' m)) • f (g x)) := by rw [k]
+      _ = g (f (φ' m • g x)) := by rw [map_smulₛₗ]
+      _ = φ' m • g x := by rw [h₁]
+#align mul_action_hom.inverse MulActionHom.inverse'
+
+lemma inverse_eq_inverse' (f : X →[M] Y₁) (g : Y₁ → X)
+    (h₁ : Function.LeftInverse g f) (h₂ : Function.RightInverse g f) :
+  inverse f g h₁ h₂ =  inverse' f g (congrFun rfl) h₁ h₂ := by
+  rfl
+
+theorem inverse'_inverse'
+    {f : X →ₑ[φ] Y} {g : Y → X}
+    {k₁ : Function.LeftInverse φ' φ} {k₂ : Function.RightInverse φ' φ}
+    {h₁ : Function.LeftInverse g f} {h₂ : Function.RightInverse g f} :
+    inverse' (inverse' f g k₂ h₁ h₂) f k₁ h₂ h₁ = f :=
+  ext fun _ => rfl
+
+theorem comp_inverse' {f : X →ₑ[φ] Y } {g : Y → X}
+    {k₁ : Function.LeftInverse φ' φ} {k₂ : Function.RightInverse φ' φ}
+    {h₁ : Function.LeftInverse g f} {h₂ : Function.RightInverse g f} :
+    (inverse' f g k₂ h₁ h₂).comp f (κ := CompTriple.comp_inv k₁)
+      = MulActionHom.id M := by
+  rw [ext_iff]
+  intro x
+  simp only [comp_apply, inverse_apply, id_apply]
+  exact h₁ x
+
+theorem inverse'_comp {f : X →ₑ[φ] Y } {g : Y → X}
+    {k₂ : Function.RightInverse φ' φ}
+    {h₁ : Function.LeftInverse g f} {h₂ : Function.RightInverse g f} :
+    f.comp (inverse' f g k₂ h₁ h₂) (κ := CompTriple.comp_inv k₂) = MulActionHom.id N := by
+  rw [ext_iff]
+  intro x
+  simp only [comp_apply, inverse_apply, id_apply]
+  exact h₂ x
+
+/-- If actions of `M` and `N` on `α` commute,
+  then for `c : M`, `(c • · : α → α)` is an `N`-action homomorphism. -/
+@[simps]
+def _root_.SMulCommClass.toMulActionHom {M} (N α : Type*)
+    [SMul M α] [SMul N α] [SMulCommClass M N α] (c : M) :
+    α →[N] α where
   toFun := (c • ·)
   map_smul' := smul_comm _
 
+end MulActionHom
+
+end MulActionHom
+
+section DistribMulAction
+
+variable {M : Type*} [Monoid M]
+variable {N : Type*} [Monoid N]
+variable {P : Type*} [Monoid P]
+variable (φ: M →* N) (φ' : N →* M) (ψ : N →* P) (χ : M →* P)
+variable (A : Type*) [AddMonoid A] [DistribMulAction M A]
+variable (B : Type*) [AddMonoid B] [DistribMulAction N B]
+variable (B₁ : Type*) [AddMonoid B₁] [DistribMulAction M B₁]
+variable (C : Type*) [AddMonoid C] [DistribMulAction P C]
+
+variable (A' : Type*) [AddGroup A'] [DistribMulAction M A']
+variable (B' : Type*) [AddGroup B'] [DistribMulAction N B']
+
 /-- Equivariant additive monoid homomorphisms. -/
-structure DistribMulActionHom extends A →[M] B, A →+ B
+structure DistribMulActionHom extends A →ₑ[φ] B, A →+ B
 #align distrib_mul_action_hom DistribMulActionHom
 
 /-- Reinterpret an equivariant additive monoid homomorphism as an additive monoid homomorphism. -/
@@ -222,16 +359,37 @@ add_decl_doc DistribMulActionHom.toMulActionHom
  see https://github.com/leanprover/lean4/issues/2000 -/
 @[inherit_doc]
 notation:25 (name := «DistribMulActionHomLocal≺»)
-  A " →+[" M:25 "] " B:0 => DistribMulActionHom M A B
+  A " →ₑ+[" φ:25 "] " B:0 => DistribMulActionHom φ A B
 
-/-- `DistribMulActionHomClass F M A B` states that `F` is a type of morphisms preserving
-the additive monoid structure and scalar multiplication by `M`.
+@[inherit_doc]
+notation:25 (name := «DistribMulActionHomIdLocal≺»)
+  A " →+[" M:25 "] " B:0 => DistribMulActionHom (MonoidHom.id M) A B
+
+-- QUESTION/TODO : Impose that `φ` is a morphism of monoids?
+
+/-- `DistribMulActionSemiHomClass F φ A B` states that `F` is a type of morphisms
+  preserving the additive monoid structure and equivariant with respect to `φ`.
+    You should extend this class when you extend `DistribMulActionSemiHom`. -/
+class DistribMulActionSemiHomClass (F : Type*)
+    {M N : outParam (Type*)} (φ : outParam (M → N))
+    (A B : outParam (Type*))
+    [Monoid M] [Monoid N]
+    [AddMonoid A] [AddMonoid B] [DistribMulAction M A] [DistribMulAction N B]
+    [FunLike F A B]
+    extends MulActionSemiHomClass F φ A B, AddMonoidHomClass F A B : Prop
+#align distrib_mul_action_hom_class DistribMulActionSemiHomClass
 
+/-- `DistribMulActionHomClass F M A B` states that `F` is a type of morphisms preserving
+  the additive monoid structure and equivariant with respect to the action of `M`.
+    It is an abbreviation to `DistribMulActionHomClass F (MonoidHom.id M) A B`
 You should extend this class when you extend `DistribMulActionHom`. -/
-class DistribMulActionHomClass (F : Type*) (M A B : outParam <| Type*)
-  [Monoid M] [AddMonoid A] [AddMonoid B] [DistribMulAction M A] [DistribMulAction M B]
-  [FunLike F A B] extends SMulHomClass F M A B, AddMonoidHomClass F A B : Prop
-#align distrib_mul_action_hom_class DistribMulActionHomClass
+abbrev DistribMulActionHomClass (F : Type*) (M : outParam (Type*))
+    (A B : outParam (Type*)) [Monoid M] [AddMonoid A] [AddMonoid B]
+    [DistribMulAction M A] [DistribMulAction M B] [FunLike F A B] :=
+    DistribMulActionSemiHomClass F (MonoidHom.id M) A B
+
+/- porting note: Removed a @[nolint dangerousInstance] for
+DistribMulActionHomClass.toAddMonoidHomClass not dangerous due to `outParam`s -/
 
 namespace DistribMulActionHom
 
@@ -249,98 +407,109 @@ Coercion is already handled by all the HomClass constructions I believe -/
 #noalign distrib_mul_action_hom.has_coe'
 #noalign distrib_mul_action_hom.has_coe_to_fun
 
-instance : FunLike (A →+[M] B) A B where
+instance : FunLike (A →ₑ+[φ] B) A B where
   coe m := m.toFun
   coe_injective' f g h := by
     rcases f with ⟨tF, _, _⟩; rcases g with ⟨tG, _, _⟩
     cases tF; cases tG; congr
 
-instance : DistribMulActionHomClass (A →+[M] B) M A B where
+instance : DistribMulActionSemiHomClass (A →ₑ+[φ] B) φ A B
+    where
+  map_smulₛₗ m := m.map_smul'
   map_zero := DistribMulActionHom.map_zero'
   map_add := DistribMulActionHom.map_add'
-  map_smul m := m.map_smul'
 
-initialize_simps_projections DistribMulActionHom (toFun → apply)
+variable {φ φ' A B B₁}
+variable {F : Type*} [FunLike F A B]
 
-variable {M A B}
 /- porting note: inserted following def & instance for consistent coercion behaviour,
 see also Algebra.Hom.Group -/
-/-- Turn an element of a type `F` satisfying `SMulHomClass F M X Y` into an actual
+/-- Turn an element of a type `F` satisfying `MulActionHomClass F M X Y` into an actual
 `MulActionHom`. This is declared as the default coercion from `F` to `MulActionHom M X Y`. -/
 @[coe]
-def _root_.DistribMulActionHomClass.toDistribMulActionHom [FunLike F A B]
-    [DistribMulActionHomClass F M A B]
-    (f : F) : A →+[M] B :=
-  { (f : A →+ B), (f : A →[M] B) with }
-
-/-- Any type satisfying `SMulHomClass` can be cast into `MulActionHom` via
-  `SMulHomClass.toMulActionHom`. -/
-instance [FunLike F A B] [DistribMulActionHomClass F M A B] :
-    CoeTC F (A →+[M] B) :=
-  ⟨DistribMulActionHomClass.toDistribMulActionHom⟩
+def _root_.DistribMulActionSemiHomClass.toDistribMulActionHom
+    [DistribMulActionSemiHomClass F φ A B]
+    (f : F) : A →ₑ+[φ] B :=
+  { (f : A →+ B),  (f : A →ₑ[φ] B) with }
+
+/-- Any type satisfying `MulActionHomClass` can be cast into `MulActionHom`
+via `MulActionHomClass.toMulActionHom`. -/
+instance [DistribMulActionSemiHomClass F φ A B] :
+  CoeTC F (A →ₑ+[φ] B) :=
+  ⟨DistribMulActionSemiHomClass.toDistribMulActionHom⟩
+
+/-- If `DistribMulAction` of `M` and `N` on `A` commute,
+  then for each `c : M`, `(c • ·)` is an `N`-action additive homomorphism. -/
+@[simps]
+def _root_.SMulCommClass.toDistribMulActionHom {M} (N A : Type*) [Monoid N] [AddMonoid A]
+    [DistribSMul M A] [DistribMulAction N A] [SMulCommClass M N A] (c : M) : A →+[N] A :=
+  { SMulCommClass.toMulActionHom N A c,
+    DistribSMul.toAddMonoidHom _ c with
+    toFun := (c • ·) }
 
 @[simp]
-theorem toFun_eq_coe (f : A →+[M] B) : f.toFun = f := rfl
+theorem toFun_eq_coe (f : A →ₑ+[φ] B) : f.toFun = f := rfl
 #align distrib_mul_action_hom.to_fun_eq_coe DistribMulActionHom.toFun_eq_coe
 
 @[norm_cast]
-theorem coe_fn_coe (f : A →+[M] B) : ⇑(f : A →+ B) = f :=
+theorem coe_fn_coe (f : A →ₑ+[φ] B) : ⇑(f : A →+ B) = f :=
   rfl
 #align distrib_mul_action_hom.coe_fn_coe DistribMulActionHom.coe_fn_coe
 
 @[norm_cast]
-theorem coe_fn_coe' (f : A →+[M] B) : ⇑(f : A →[M] B) = f :=
+theorem coe_fn_coe' (f : A →ₑ+[φ] B) : ⇑(f : A →ₑ[φ] B) = f :=
   rfl
 #align distrib_mul_action_hom.coe_fn_coe' DistribMulActionHom.coe_fn_coe'
 
 @[ext]
-theorem ext {f g : A →+[M] B} : (∀ x, f x = g x) → f = g :=
+theorem ext {f g : A →ₑ+[φ] B} : (∀ x, f x = g x) → f = g :=
   DFunLike.ext f g
 #align distrib_mul_action_hom.ext DistribMulActionHom.ext
 
-theorem ext_iff {f g : A →+[M] B} : f = g ↔ ∀ x, f x = g x :=
+theorem ext_iff {f g : A →ₑ+[φ] B} : f = g ↔ ∀ x, f x = g x :=
   DFunLike.ext_iff
 #align distrib_mul_action_hom.ext_iff DistribMulActionHom.ext_iff
 
-protected theorem congr_fun {f g : A →+[M] B} (h : f = g) (x : A) : f x = g x :=
+protected theorem congr_fun {f g : A →ₑ+[φ] B} (h : f = g) (x : A) : f x = g x :=
   DFunLike.congr_fun h _
 #align distrib_mul_action_hom.congr_fun DistribMulActionHom.congr_fun
 
-theorem toMulActionHom_injective {f g : A →+[M] B} (h : (f : A →[M] B) = (g : A →[M] B)) :
+theorem toMulActionHom_injective {f g : A →ₑ+[φ] B} (h : (f : A →ₑ[φ] B) = (g : A →ₑ[φ] B)) :
     f = g := by
   ext a
   exact MulActionHom.congr_fun h a
 #align distrib_mul_action_hom.to_mul_action_hom_injective DistribMulActionHom.toMulActionHom_injective
 
-theorem toAddMonoidHom_injective {f g : A →+[M] B} (h : (f : A →+ B) = (g : A →+ B)) : f = g := by
+theorem toAddMonoidHom_injective {f g : A →ₑ+[φ] B} (h : (f : A →+ B) = (g : A →+ B)) : f = g := by
   ext a
   exact DFunLike.congr_fun h a
 #align distrib_mul_action_hom.to_add_monoid_hom_injective DistribMulActionHom.toAddMonoidHom_injective
 
-protected theorem map_zero (f : A →+[M] B) : f 0 = 0 :=
+protected theorem map_zero (f : A →ₑ+[φ] B) : f 0 = 0 :=
   map_zero f
 #align distrib_mul_action_hom.map_zero DistribMulActionHom.map_zero
 
-protected theorem map_add (f : A →+[M] B) (x y : A) : f (x + y) = f x + f y :=
+protected theorem map_add (f : A →ₑ+[φ] B) (x y : A) : f (x + y) = f x + f y :=
   map_add f x y
 #align distrib_mul_action_hom.map_add DistribMulActionHom.map_add
 
-protected theorem map_neg (f : A' →+[M] B') (x : A') : f (-x) = -f x :=
+protected theorem map_neg (f : A' →ₑ+[φ] B') (x : A') : f (-x) = -f x :=
   map_neg f x
 #align distrib_mul_action_hom.map_neg DistribMulActionHom.map_neg
 
-protected theorem map_sub (f : A' →+[M] B') (x y : A') : f (x - y) = f x - f y :=
+protected theorem map_sub (f : A' →ₑ+[φ] B') (x y : A') : f (x - y) = f x - f y :=
   map_sub f x y
 #align distrib_mul_action_hom.map_sub DistribMulActionHom.map_sub
 
-protected theorem map_smul (f : A →+[M] B) (m : M) (x : A) : f (m • x) = m • f x :=
-  map_smul f m x
-#align distrib_mul_action_hom.map_smul DistribMulActionHom.map_smul
+protected theorem map_smulₑ (f : A →ₑ+[φ] B) (m : M) (x : A) : f (m • x) = (φ m) • f x :=
+  map_smulₛₗ f m x
+#align distrib_mul_action_hom.map_smul DistribMulActionHom.map_smulₑ
 
 variable (M)
+
 /-- The identity map as an equivariant additive monoid homomorphism. -/
 protected def id : A →+[M] A :=
-  ⟨.id _, rfl, fun _ _ => rfl⟩
+  ⟨MulActionHom.id _, rfl, fun _ _ => rfl⟩
 #align distrib_mul_action_hom.id DistribMulActionHom.id
 
 @[simp]
@@ -348,17 +517,17 @@ theorem id_apply (x : A) : DistribMulActionHom.id M x = x := by
   rfl
 #align distrib_mul_action_hom.id_apply DistribMulActionHom.id_apply
 
-variable {M C}
+variable {M C ψ χ}
 
--- Porting note:  `simp` used to prove this, but now `change` is needed to push past the coercions
-instance : Zero (A →+[M] B) :=
-  ⟨{ (0 : A →+ B) with map_smul' := fun m _ => by change (0 : B) = m • (0 : B); rw [smul_zero]}⟩
+-- porting note:  `simp` used to prove this, but now `change` is needed to push past the coercions
+instance : Zero (A →ₑ+[φ] B) :=
+  ⟨{ (0 : A →+ B) with map_smul' := fun m _ => by change (0 : B) = (φ m) • (0 : B); rw [smul_zero]}⟩
 
 instance : One (A →+[M] A) :=
   ⟨DistribMulActionHom.id M⟩
 
 @[simp]
-theorem coe_zero : ⇑(0 : A →+[M] B) = 0 :=
+theorem coe_zero : ⇑(0 : A →ₑ+[φ] B) = 0 :=
   rfl
 #align distrib_mul_action_hom.coe_zero DistribMulActionHom.coe_zero
 
@@ -367,7 +536,7 @@ theorem coe_one : ⇑(1 : A →+[M] A) = id :=
   rfl
 #align distrib_mul_action_hom.coe_one DistribMulActionHom.coe_one
 
-theorem zero_apply (a : A) : (0 : A →+[M] B) a = 0 :=
+theorem zero_apply (a : A) : (0 : A →ₑ+[φ] B) a = 0 :=
   rfl
 #align distrib_mul_action_hom.zero_apply DistribMulActionHom.zero_apply
 
@@ -375,49 +544,70 @@ theorem one_apply (a : A) : (1 : A →+[M] A) a = a :=
   rfl
 #align distrib_mul_action_hom.one_apply DistribMulActionHom.one_apply
 
-instance : Inhabited (A →+[M] B) :=
+instance : Inhabited (A →ₑ+[φ] B) :=
   ⟨0⟩
 
+set_option linter.unusedVariables false in
 /-- Composition of two equivariant additive monoid homomorphisms. -/
-def comp (g : B →+[M] C) (f : A →+[M] B) : A →+[M] C :=
-  { MulActionHom.comp (g : B →[M] C) (f : A →[M] B),
+def comp (g : B →ₑ+[ψ] C) (f : A →ₑ+[φ] B) [κ : MonoidHom.CompTriple φ ψ χ] :
+    A →ₑ+[χ] C :=
+  { MulActionHom.comp (g : B →ₑ[ψ] C) (f : A →ₑ[φ] B),
     AddMonoidHom.comp (g : B →+ C) (f : A →+ B) with }
 #align distrib_mul_action_hom.comp DistribMulActionHom.comp
 
 @[simp]
-theorem comp_apply (g : B →+[M] C) (f : A →+[M] B) (x : A) : g.comp f x = g (f x) :=
+theorem comp_apply
+    (g : B →ₑ+[ψ] C) (f : A →ₑ+[φ] B) [MonoidHom.CompTriple φ ψ χ] (x : A) : g.comp f x = g (f x) :=
   rfl
 #align distrib_mul_action_hom.comp_apply DistribMulActionHom.comp_apply
 
 @[simp]
-theorem id_comp (f : A →+[M] B) : (DistribMulActionHom.id M).comp f = f :=
+theorem id_comp (f : A →ₑ+[φ] B) : comp (DistribMulActionHom.id N) f = f :=
   ext fun x => by rw [comp_apply, id_apply]
 #align distrib_mul_action_hom.id_comp DistribMulActionHom.id_comp
 
 @[simp]
-theorem comp_id (f : A →+[M] B) : f.comp (DistribMulActionHom.id M) = f :=
+theorem comp_id (f : A →ₑ+[φ] B) : f.comp (DistribMulActionHom.id M) = f :=
   ext fun x => by rw [comp_apply, id_apply]
 #align distrib_mul_action_hom.comp_id DistribMulActionHom.comp_id
 
+@[simp]
+theorem comp_assoc {Q D : Type*} [Monoid Q] [AddMonoid D] [DistribMulAction Q D]
+    {η : P →* Q} {θ : M →* Q} {ζ : N →* Q}
+    (h : C →ₑ+[η] D) (g : B →ₑ+[ψ] C) (f : A →ₑ+[φ] B)
+    [MonoidHom.CompTriple φ ψ χ] [MonoidHom.CompTriple χ η θ]
+    [MonoidHom.CompTriple ψ η ζ] [MonoidHom.CompTriple φ ζ θ] :
+    h.comp (g.comp f) = (h.comp g).comp f :=
+  ext fun _ => rfl
+
 /-- The inverse of a bijective `DistribMulActionHom` is a `DistribMulActionHom`. -/
 @[simps]
-def inverse (f : A →+[M] B) (g : B → A) (h₁ : Function.LeftInverse g f)
-    (h₂ : Function.RightInverse g f) : B →+[M] A :=
-  { (f : A →+ B).inverse g h₁ h₂, (f : A →[M] B).inverse g h₁ h₂ with toFun := g }
+def inverse (f : A →+[M] B₁) (g : B₁ → A) (h₁ : Function.LeftInverse g f)
+    (h₂ : Function.RightInverse g f) : B₁ →+[M] A :=
+  { (f : A →+ B₁).inverse g h₁ h₂, f.toMulActionHom.inverse g h₁ h₂ with toFun := g }
 #align distrib_mul_action_hom.inverse DistribMulActionHom.inverse
 
 section Semiring
 
-variable {R M'}
+variable (R : Type*) [Semiring R] [MulSemiringAction M R]
+variable (R' : Type*) [Ring R'] [MulSemiringAction M R']
+variable (S : Type*) [Semiring S] [MulSemiringAction N S]
+variable (S' : Type*) [Ring S'] [MulSemiringAction N S']
+variable (T : Type*) [Semiring T] [MulSemiringAction P T]
+
+variable {R S M' N'}
 variable [AddMonoid M'] [DistribMulAction R M']
+variable [AddMonoid N'] [DistribMulAction S N']
 
+variable {σ : R →* S}
 @[ext]
-theorem ext_ring {f g : R →+[R] M'} (h : f 1 = g 1) : f = g := by
+theorem ext_ring {f g : R →ₑ+[σ] N'} (h : f 1 = g 1) : f = g := by
   ext x
-  rw [← mul_one x, ← smul_eq_mul R, f.map_smul, g.map_smul, h]
+  rw [← mul_one x, ← smul_eq_mul R, f.map_smulₑ, g.map_smulₑ, h]
+
 #align distrib_mul_action_hom.ext_ring DistribMulActionHom.ext_ring
 
-theorem ext_ring_iff {f g : R →+[R] M'} : f = g ↔ f 1 = g 1 :=
+theorem ext_ring_iff {f g : R →ₑ+[σ] N'} : f = g ↔ f 1 = g 1 :=
   ⟨fun h => h ▸ rfl, ext_ring⟩
 #align distrib_mul_action_hom.ext_ring_iff DistribMulActionHom.ext_ring_iff
 
@@ -425,20 +615,30 @@ end Semiring
 
 end DistribMulActionHom
 
-/-- If `DistribMulAction` of `M` and `N` on `A` commute, then for each `c : M`, `(c • ·)` is an
-`N`-action additive homomorphism. -/
-@[simps]
-def SMulCommClass.toDistribMulActionHom {M} (N A : Type*) [Monoid N] [AddMonoid A]
-    [DistribSMul M A] [DistribMulAction N A] [SMulCommClass M N A] (c : M) : A →+[N] A :=
-  { SMulCommClass.toMulActionHom N A c, DistribSMul.toAddMonoidHom _ c with
-    toFun := (c • ·) }
+variable (R : Type*) [Semiring R] [MulSemiringAction M R]
+variable (R' : Type*) [Ring R'] [MulSemiringAction M R']
+variable (S : Type*) [Semiring S] [MulSemiringAction N S]
+variable (S' : Type*) [Ring S'] [MulSemiringAction N S']
+variable (T : Type*) [Semiring T] [MulSemiringAction P T]
+
+-- variable {R S M' N'}
+-- variable [AddMonoid M'] [DistribMulAction R M']
+-- variable [AddMonoid N'] [DistribMulAction S N']
 
 /-- Equivariant ring homomorphisms. -/
 -- Porting note: This linter does not exist yet
 -- @[nolint has_nonempty_instance]
-structure MulSemiringActionHom extends R →+[M] S, R →+* S
+structure MulSemiringActionHom extends R →ₑ+[φ] S, R →+* S
 #align mul_semiring_action_hom MulSemiringActionHom
 
+/-
+/-- Equivariant ring homomorphism -/
+abbrev MulSemiringActionHom
+  (M : Type*) [Monoid M]
+  (R : Type*) [Semiring R] [MulSemiringAction M R]
+  (S : Type*) [Semiring S] [MulSemiringAction M S]:= MulSemiringActionHom (MonoidHom.id M) R S
+-/
+
 /-- Reinterpret an equivariant ring homomorphism as a ring homomorphism. -/
 add_decl_doc MulSemiringActionHom.toRingHom
 #align mul_semiring_action_hom.to_ring_hom MulSemiringActionHom.toRingHom
@@ -451,16 +651,33 @@ add_decl_doc MulSemiringActionHom.toDistribMulActionHom
  see https://github.com/leanprover/lean4/issues/2000 -/
 @[inherit_doc]
 notation:25 (name := «MulSemiringActionHomLocal≺»)
-  R " →+*[" M:25 "] " S:0 => MulSemiringActionHom M R S
+  R " →ₑ+*[" φ:25 "] " S:0 => MulSemiringActionHom φ R S
 
-/-- `MulSemiringActionHomClass F M R S` states that `F` is a type of morphisms preserving
-the ring structure and scalar multiplication by `M`.
+@[inherit_doc]
+notation:25 (name := «MulSemiringActionHomIdLocal≺»)
+  R " →+*[" M:25 "] " S:0 => MulSemiringActionHom (MonoidHom.id M) R S
+
+/-- `MulSemiringActionHomClass F φ R S` states that `F` is a type of morphisms preserving
+the ring structure and equivariant with respect to `φ`.
 
 You should extend this class when you extend `MulSemiringActionHom`. -/
-class MulSemiringActionHomClass (F : Type*) (M R S : outParam <| Type*)
-  [Monoid M] [Semiring R] [Semiring S] [DistribMulAction M R] [DistribMulAction M S]
-  [FunLike F R S] extends DistribMulActionHomClass F M R S, RingHomClass F R S : Prop
-#align mul_semiring_action_hom_class MulSemiringActionHomClass
+class MulSemiringActionSemiHomClass (F : Type*)
+    {M N : outParam (Type*)} [Monoid M] [Monoid N]
+    (φ : outParam (M → N))
+    (R S : outParam (Type*)) [Semiring R] [Semiring S]
+    [DistribMulAction M R] [DistribMulAction N S] [FunLike F R S]
+    extends DistribMulActionSemiHomClass F φ R S, RingHomClass F R S : Prop
+#align mul_semiring_action_hom_class MulSemiringActionSemiHomClass
+
+/-- `MulSemiringActionHomClass F M R S` states that `F` is a type of morphisms preserving
+the ring structure and equivariant with respect to a `DistribMulAction`of `M` on `R` and `S` .
+ -/
+abbrev MulSemiringActionHomClass
+    (F : Type*)
+    {M : outParam (Type*)} [Monoid M]
+    (R S : outParam (Type*)) [Semiring R] [Semiring S]
+    [DistribMulAction M R] [DistribMulAction M S] [FunLike F R S] :=
+  MulSemiringActionSemiHomClass F (MonoidHom.id M) R S
 
 /- porting note: Removed a @[nolint dangerousInstance] for MulSemiringActionHomClass.toRingHomClass
  not dangerous due to outParam -/
@@ -485,22 +702,21 @@ Coercion is already handled by all the HomClass constructions I believe -/
 #noalign mul_semiring_action_hom.has_coe'
 #noalign mul_semiring_action_hom.has_coe_to_fun
 
-instance : FunLike (R →+*[M] S) R S where
+instance : FunLike (R →ₑ+*[φ] S) R S where
   coe m := m.toFun
   coe_injective' f g h := by
     rcases f with ⟨⟨tF, _, _⟩, _, _⟩; rcases g with ⟨⟨tG, _, _⟩, _, _⟩
     cases tF; cases tG; congr
 
-instance : MulSemiringActionHomClass (R →+*[M] S) M R S where
+instance : MulSemiringActionSemiHomClass (R →ₑ+*[φ] S) φ R S where
   map_zero m := m.map_zero'
   map_add m := m.map_add'
   map_one := MulSemiringActionHom.map_one'
   map_mul := MulSemiringActionHom.map_mul'
-  map_smul m := m.map_smul'
-
-initialize_simps_projections MulSemiringActionHom (toFun → apply)
+  map_smulₛₗ m := m.map_smul'
 
-variable {M R S}
+variable {φ R S}
+variable {F : Type*} [FunLike F R S]
 
 /- porting note: inserted following def & instance for consistent coercion behaviour,
 see also Algebra.Hom.Group -/
@@ -508,69 +724,78 @@ see also Algebra.Hom.Group -/
 `MulSemiringActionHom`. This is declared as the default coercion from `F` to
 `MulSemiringActionHom M X Y`. -/
 @[coe]
-def _root_.MulSemiringActionHomClass.toMulSemiringActionHom [FunLike F R S]
-    [MulSemiringActionHomClass F M R S]
-    (f : F) : R →+*[M] S :=
- { (f : R →+* S), (f : R →+[M] S) with }
+def _root_.MulSemiringActionHomClass.toMulSemiringActionHom
+    [MulSemiringActionSemiHomClass F φ R S]
+    (f : F) : R →ₑ+*[φ] S :=
+ { (f : R →+* S),  (f : R →ₑ+[φ] S) with }
 
 /-- Any type satisfying `MulSemiringActionHomClass` can be cast into `MulSemiringActionHom` via
   `MulSemiringActionHomClass.toMulSemiringActionHom`. -/
-instance [FunLike F R S] [MulSemiringActionHomClass F M R S] :
-    CoeTC F (R →+*[M] S) :=
+instance [MulSemiringActionSemiHomClass F φ R S] :
+    CoeTC F (R →ₑ+*[φ] S) :=
   ⟨MulSemiringActionHomClass.toMulSemiringActionHom⟩
 
 @[norm_cast]
-theorem coe_fn_coe (f : R →+*[M] S) : ⇑(f : R →+* S) = f :=
+theorem coe_fn_coe (f : R →ₑ+*[φ] S) : ⇑(f : R →+* S) = f :=
   rfl
 #align mul_semiring_action_hom.coe_fn_coe MulSemiringActionHom.coe_fn_coe
 
 @[norm_cast]
-theorem coe_fn_coe' (f : R →+*[M] S) : ⇑(f : R →+[M] S) = f :=
+theorem coe_fn_coe' (f : R →ₑ+*[φ] S) : ⇑(f : R →ₑ+[φ] S) = f :=
   rfl
 #align mul_semiring_action_hom.coe_fn_coe' MulSemiringActionHom.coe_fn_coe'
 
 @[ext]
-theorem ext {f g : R →+*[M] S} : (∀ x, f x = g x) → f = g :=
+theorem ext {f g : R →ₑ+*[φ] S} : (∀ x, f x = g x) → f = g :=
   DFunLike.ext f g
 #align mul_semiring_action_hom.ext MulSemiringActionHom.ext
 
-theorem ext_iff {f g : R →+*[M] S} : f = g ↔ ∀ x, f x = g x :=
+theorem ext_iff {f g : R →ₑ+*[φ] S} : f = g ↔ ∀ x, f x = g x :=
   DFunLike.ext_iff
 #align mul_semiring_action_hom.ext_iff MulSemiringActionHom.ext_iff
 
-protected theorem map_zero (f : R →+*[M] S) : f 0 = 0 :=
+protected theorem map_zero (f : R →ₑ+*[φ] S) : f 0 = 0 :=
   map_zero f
 #align mul_semiring_action_hom.map_zero MulSemiringActionHom.map_zero
 
-protected theorem map_add (f : R →+*[M] S) (x y : R) : f (x + y) = f x + f y :=
+protected theorem map_add (f : R →ₑ+*[φ] S) (x y : R) : f (x + y) = f x + f y :=
   map_add f x y
 #align mul_semiring_action_hom.map_add MulSemiringActionHom.map_add
 
-protected theorem map_neg (f : R' →+*[M] S') (x : R') : f (-x) = -f x :=
+protected theorem map_neg (f : R' →ₑ+*[φ] S') (x : R') : f (-x) = -f x :=
   map_neg f x
 #align mul_semiring_action_hom.map_neg MulSemiringActionHom.map_neg
 
-protected theorem map_sub (f : R' →+*[M] S') (x y : R') : f (x - y) = f x - f y :=
+protected theorem map_sub (f : R' →ₑ+*[φ] S') (x y : R') : f (x - y) = f x - f y :=
   map_sub f x y
 #align mul_semiring_action_hom.map_sub MulSemiringActionHom.map_sub
 
-protected theorem map_one (f : R →+*[M] S) : f 1 = 1 :=
+protected theorem map_one (f : R →ₑ+*[φ] S) : f 1 = 1 :=
   map_one f
 #align mul_semiring_action_hom.map_one MulSemiringActionHom.map_one
 
-protected theorem map_mul (f : R →+*[M] S) (x y : R) : f (x * y) = f x * f y :=
+protected theorem map_mul (f : R →ₑ+*[φ] S) (x y : R) : f (x * y) = f x * f y :=
   map_mul f x y
 #align mul_semiring_action_hom.map_mul MulSemiringActionHom.map_mul
 
-protected theorem map_smul (f : R →+*[M] S) (m : M) (x : R) : f (m • x) = m • f x :=
-  map_smul f m x
+protected theorem map_smulₛₗ (f : R →ₑ+*[φ] S) (m : M) (x : R) : f (m • x) = φ m • f x :=
+  map_smulₛₗ f m x
+#align mul_semiring_action_hom.map_smulₛₗ MulSemiringActionHom.map_smulₛₗ
+
+protected theorem map_smul [MulSemiringAction M S] (f : R →+*[M] S) (m : M) (x : R) :
+    f (m • x) = m • f x :=
+  map_smulₛₗ f m x
 #align mul_semiring_action_hom.map_smul MulSemiringActionHom.map_smul
 
-variable (M)
+end MulSemiringActionHom
+
+namespace MulSemiringActionHom
+
+variable (M) {R}
 
 /-- The identity map as an equivariant ring homomorphism. -/
 protected def id : R →+*[M] R :=
-  ⟨.id _, rfl, (fun _ _ => rfl)⟩
+  ⟨DistribMulActionHom.id _, rfl, (fun _ _ => rfl)⟩
 #align mul_semiring_action_hom.id MulSemiringActionHom.id
 
 @[simp]
@@ -578,27 +803,55 @@ theorem id_apply (x : R) : MulSemiringActionHom.id M x = x :=
   rfl
 #align mul_semiring_action_hom.id_apply MulSemiringActionHom.id_apply
 
-variable {M T}
 
-/-- Composition of two equivariant additive monoid homomorphisms. -/
-def comp (g : S →+*[M] T) (f : R →+*[M] S) : R →+*[M] T :=
-  { DistribMulActionHom.comp (g : S →+[M] T) (f : R →+[M] S),
+end MulSemiringActionHom
+
+namespace MulSemiringActionHom
+open MulSemiringActionHom
+
+variable {R S T}
+
+variable {φ φ' ψ χ}
+
+set_option linter.unusedVariables false in
+/-- Composition of two equivariant additive ring homomorphisms. -/
+def comp (g : S →ₑ+*[ψ] T) (f : R →ₑ+*[φ] S) [κ : MonoidHom.CompTriple φ ψ χ] : R →ₑ+*[χ] T :=
+  { DistribMulActionHom.comp (g : S →ₑ+[ψ] T) (f : R →ₑ+[φ] S),
     RingHom.comp (g : S →+* T) (f : R →+* S) with }
-#align mul_semiring_action_hom.comp MulSemiringActionHom.comp
 
 @[simp]
-theorem comp_apply (g : S →+*[M] T) (f : R →+*[M] S) (x : R) : g.comp f x = g (f x) :=
-  rfl
-#align mul_semiring_action_hom.comp_apply MulSemiringActionHom.comp_apply
+theorem comp_apply (g : S →ₑ+*[ψ] T) (f : R →ₑ+*[φ] S) [MonoidHom.CompTriple φ ψ χ] (x : R) :
+    g.comp f x = g (f x) := rfl
 
 @[simp]
-theorem id_comp (f : R →+*[M] S) : (MulSemiringActionHom.id M).comp f = f :=
+theorem id_comp (f : R →ₑ+*[φ] S) : (MulSemiringActionHom.id N).comp f = f :=
   ext fun x => by rw [comp_apply, id_apply]
-#align mul_semiring_action_hom.id_comp MulSemiringActionHom.id_comp
 
 @[simp]
-theorem comp_id (f : R →+*[M] S) : f.comp (MulSemiringActionHom.id M) = f :=
+theorem comp_id (f : R →ₑ+*[φ] S) : f.comp (MulSemiringActionHom.id M) = f :=
   ext fun x => by rw [comp_apply, id_apply]
 #align mul_semiring_action_hom.comp_id MulSemiringActionHom.comp_id
 
+/-- The inverse of a bijective `MulSemiringActionHom` is a `MulSemiringActionHom`. -/
+@[simps]
+def inverse' (f : R →ₑ+*[φ] S) (g : S → R) (k : Function.RightInverse φ' φ)
+    (h₁ : Function.LeftInverse g f) (h₂ : Function.RightInverse g f) :
+    S →ₑ+*[φ'] R :=
+  { (f : R →+ S).inverse g h₁ h₂,
+    (f : R →* S).inverse g h₁ h₂,
+    (f : R →ₑ[φ] S).inverse' g k h₁ h₂ with
+    toFun := g }
+
+/-- The inverse of a bijective `MulSemiringActionHom` is a `MulSemiringActionHom`. -/
+@[simps]
+def inverse {S₁ : Type*} [Semiring S₁] [MulSemiringAction M S₁]
+    (f : R →+*[M] S₁) (g : S₁ → R)
+    (h₁ : Function.LeftInverse g f) (h₂ : Function.RightInverse g f) :
+    S₁ →+*[M] R :=
+  { (f : R →+ S₁).inverse g h₁ h₂,
+    (f : R →* S₁).inverse g h₁ h₂,
+    f.toMulActionHom.inverse g h₁ h₂ with
+    toFun := g }
+#align mul_semiring_action_hom.inverse MulSemiringActionHom.inverse
+
 end MulSemiringActionHom
chore: classify todo porting notes (#11216)

Classifies by adding issue number #11215 to porting notes claiming "TODO".

Diff
@@ -235,7 +235,7 @@ class DistribMulActionHomClass (F : Type*) (M A B : outParam <| Type*)
 
 namespace DistribMulActionHom
 
-/- porting note: TODO decide whether the next two instances should be removed
+/- Porting note (#11215): TODO decide whether the next two instances should be removed
 Coercion is already handled by all the HomClass constructions I believe -/
 -- instance coe : Coe (A →+[M] B) (A →+ B) :=
 --   ⟨toAddMonoidHom⟩
@@ -467,7 +467,7 @@ class MulSemiringActionHomClass (F : Type*) (M R S : outParam <| Type*)
 
 namespace MulSemiringActionHom
 
-/- porting note: TODO decide whether the next two instances should be removed
+/- Porting note (#11215): TODO decide whether the next two instances should be removed
 Coercion is already handled by all the HomClass constructions I believe -/
 -- @[coe]
 -- instance coe : Coe (R →+*[M] S) (R →+* S) :=
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -88,7 +88,7 @@ export SMulHomClass (map_smul)
 
 attribute [simp] map_smul
 
--- porting note: removed has_coe_to_fun instance, coercions handled differently now
+-- Porting note: removed has_coe_to_fun instance, coercions handled differently now
 #noalign mul_action_hom.has_coe_to_fun
 
 instance : FunLike (X →[M'] Y) X Y where
@@ -350,7 +350,7 @@ theorem id_apply (x : A) : DistribMulActionHom.id M x = x := by
 
 variable {M C}
 
--- porting note:  `simp` used to prove this, but now `change` is needed to push past the coercions
+-- Porting note:  `simp` used to prove this, but now `change` is needed to push past the coercions
 instance : Zero (A →+[M] B) :=
   ⟨{ (0 : A →+ B) with map_smul' := fun m _ => by change (0 : B) = m • (0 : B); rw [smul_zero]}⟩
 
@@ -479,7 +479,7 @@ Coercion is already handled by all the HomClass constructions I believe -/
 --   ⟨toDistribMulActionHom⟩
 -- #align mul_semiring_action_hom.has_coe' MulSemiringActionHom.coe'
 
--- porting note: removed has_coe_to_fun instance, coercions handled differently now
+-- Porting note: removed has_coe_to_fun instance, coercions handled differently now
 
 #noalign mul_semiring_action_hom.has_coe
 #noalign mul_semiring_action_hom.has_coe'
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
@@ -75,8 +75,8 @@ notation:25 (name := «MulActionHomLocal≺») X " →[" M:25 "] " Y:0 => MulAct
 scalar multiplication by `M`.
 
 You should extend this class when you extend `MulActionHom`. -/
-class SMulHomClass (F : Type*) (M X Y : outParam <| Type*) [SMul M X] [SMul M Y] extends
-  DFunLike F X fun _ => Y where
+class SMulHomClass (F : Type*) (M X Y : outParam <| Type*) [SMul M X] [SMul M Y]
+    [FunLike F X Y] : Prop where
   /-- The proposition that the function preserves the action. -/
   map_smul : ∀ (f : F) (c : M) (x : X), f (c • x) = c • f x
 #align smul_hom_class SMulHomClass
@@ -91,9 +91,11 @@ attribute [simp] map_smul
 -- porting note: removed has_coe_to_fun instance, coercions handled differently now
 #noalign mul_action_hom.has_coe_to_fun
 
-instance : SMulHomClass (X →[M'] Y) M' X Y where
+instance : FunLike (X →[M'] Y) X Y where
   coe := MulActionHom.toFun
   coe_injective' f g h := by cases f; cases g; congr
+
+instance : SMulHomClass (X →[M'] Y) M' X Y where
   map_smul := MulActionHom.map_smul'
 
 initialize_simps_projections MulActionHom (toFun → apply)
@@ -107,20 +109,21 @@ see also Algebra.Hom.Group -/
 /-- Turn an element of a type `F` satisfying `SMulHomClass F M X Y` into an actual
 `MulActionHom`. This is declared as the default coercion from `F` to `MulActionHom M X Y`. -/
 @[coe]
-def _root_.SMulHomClass.toMulActionHom [SMul M X] [SMul M Y] [SMulHomClass F M X Y] (f : F) :
+def _root_.SMulHomClass.toMulActionHom [SMul M X] [SMul M Y] [FunLike F X Y]
+    [SMulHomClass F M X Y] (f : F) :
     X →[M] Y where
-   toFun := DFunLike.coe f
-   map_smul' := map_smul f
+  toFun := DFunLike.coe f
+  map_smul' := map_smul f
 
 /-- Any type satisfying `SMulHomClass` can be cast into `MulActionHom` via
   `SMulHomClass.toMulActionHom`. -/
-instance [SMul M X] [SMul M Y] [SMulHomClass F M X Y] : CoeTC F (X →[M] Y) :=
+instance [SMul M X] [SMul M Y] [FunLike F X Y] [SMulHomClass F M X Y] : CoeTC F (X →[M] Y) :=
   ⟨SMulHomClass.toMulActionHom⟩
 
 variable (M' X Y F) in
 /-- If Y/X/M forms a scalar tower, any map X → Y preserving X-action also preserves M-action. -/
-def _root_.IsScalarTower.smulHomClass [MulOneClass X] [SMul X Y] [IsScalarTower M' X Y]
-    [SMulHomClass F X X Y] : SMulHomClass F M' X Y where
+theorem _root_.IsScalarTower.smulHomClass [MulOneClass X] [SMul X Y] [IsScalarTower M' X Y]
+    [FunLike F X Y] [SMulHomClass F X X Y] : SMulHomClass F M' X Y where
   map_smul f m x := by
     rw [← mul_one (m • x), ← smul_eq_mul, map_smul, smul_assoc, ← map_smul, smul_eq_mul, mul_one]
 
@@ -225,14 +228,11 @@ notation:25 (name := «DistribMulActionHomLocal≺»)
 the additive monoid structure and scalar multiplication by `M`.
 
 You should extend this class when you extend `DistribMulActionHom`. -/
-class DistribMulActionHomClass (F : Type*) (M A B : outParam <| Type*) [Monoid M] [AddMonoid A]
-  [AddMonoid B] [DistribMulAction M A] [DistribMulAction M B] extends SMulHomClass F M A B,
-  AddMonoidHomClass F A B
+class DistribMulActionHomClass (F : Type*) (M A B : outParam <| Type*)
+  [Monoid M] [AddMonoid A] [AddMonoid B] [DistribMulAction M A] [DistribMulAction M B]
+  [FunLike F A B] extends SMulHomClass F M A B, AddMonoidHomClass F A B : Prop
 #align distrib_mul_action_hom_class DistribMulActionHomClass
 
-/- porting note: Removed a @[nolint dangerousInstance] for
-DistribMulActionHomClass.toAddMonoidHomClass not dangerous due to `outParam`s -/
-
 namespace DistribMulActionHom
 
 /- porting note: TODO decide whether the next two instances should be removed
@@ -245,20 +245,20 @@ Coercion is already handled by all the HomClass constructions I believe -/
 --   ⟨toMulActionHom⟩
 -- #align distrib_mul_action_hom.has_coe' DistribMulActionHom.coe'
 
--- porting note: removed has_coe_to_fun instance, coercions handled differently now
-
 #noalign distrib_mul_action_hom.has_coe
 #noalign distrib_mul_action_hom.has_coe'
 #noalign distrib_mul_action_hom.has_coe_to_fun
 
-instance : DistribMulActionHomClass (A →+[M] B) M A B where
+instance : FunLike (A →+[M] B) A B where
   coe m := m.toFun
   coe_injective' f g h := by
     rcases f with ⟨tF, _, _⟩; rcases g with ⟨tG, _, _⟩
     cases tF; cases tG; congr
-  map_smul m := m.map_smul'
+
+instance : DistribMulActionHomClass (A →+[M] B) M A B where
   map_zero := DistribMulActionHom.map_zero'
   map_add := DistribMulActionHom.map_add'
+  map_smul m := m.map_smul'
 
 initialize_simps_projections DistribMulActionHom (toFun → apply)
 
@@ -268,13 +268,15 @@ see also Algebra.Hom.Group -/
 /-- Turn an element of a type `F` satisfying `SMulHomClass F M X Y` into an actual
 `MulActionHom`. This is declared as the default coercion from `F` to `MulActionHom M X Y`. -/
 @[coe]
-def _root_.DistribMulActionHomClass.toDistribMulActionHom [DistribMulActionHomClass F M A B]
+def _root_.DistribMulActionHomClass.toDistribMulActionHom [FunLike F A B]
+    [DistribMulActionHomClass F M A B]
     (f : F) : A →+[M] B :=
   { (f : A →+ B), (f : A →[M] B) with }
 
 /-- Any type satisfying `SMulHomClass` can be cast into `MulActionHom` via
   `SMulHomClass.toMulActionHom`. -/
-instance [DistribMulActionHomClass F M A B] : CoeTC F (A →+[M] B) :=
+instance [FunLike F A B] [DistribMulActionHomClass F M A B] :
+    CoeTC F (A →+[M] B) :=
   ⟨DistribMulActionHomClass.toDistribMulActionHom⟩
 
 @[simp]
@@ -455,9 +457,9 @@ notation:25 (name := «MulSemiringActionHomLocal≺»)
 the ring structure and scalar multiplication by `M`.
 
 You should extend this class when you extend `MulSemiringActionHom`. -/
-class MulSemiringActionHomClass (F : Type*) (M R S : outParam <| Type*) [Monoid M] [Semiring R]
-  [Semiring S] [DistribMulAction M R] [DistribMulAction M S] extends
-  DistribMulActionHomClass F M R S, RingHomClass F R S
+class MulSemiringActionHomClass (F : Type*) (M R S : outParam <| Type*)
+  [Monoid M] [Semiring R] [Semiring S] [DistribMulAction M R] [DistribMulAction M S]
+  [FunLike F R S] extends DistribMulActionHomClass F M R S, RingHomClass F R S : Prop
 #align mul_semiring_action_hom_class MulSemiringActionHomClass
 
 /- porting note: Removed a @[nolint dangerousInstance] for MulSemiringActionHomClass.toRingHomClass
@@ -483,16 +485,18 @@ Coercion is already handled by all the HomClass constructions I believe -/
 #noalign mul_semiring_action_hom.has_coe'
 #noalign mul_semiring_action_hom.has_coe_to_fun
 
-instance : MulSemiringActionHomClass (R →+*[M] S) M R S where
+instance : FunLike (R →+*[M] S) R S where
   coe m := m.toFun
   coe_injective' f g h := by
     rcases f with ⟨⟨tF, _, _⟩, _, _⟩; rcases g with ⟨⟨tG, _, _⟩, _, _⟩
     cases tF; cases tG; congr
-  map_smul m := m.map_smul'
+
+instance : MulSemiringActionHomClass (R →+*[M] S) M R S where
   map_zero m := m.map_zero'
   map_add m := m.map_add'
   map_one := MulSemiringActionHom.map_one'
   map_mul := MulSemiringActionHom.map_mul'
+  map_smul m := m.map_smul'
 
 initialize_simps_projections MulSemiringActionHom (toFun → apply)
 
@@ -504,13 +508,15 @@ see also Algebra.Hom.Group -/
 `MulSemiringActionHom`. This is declared as the default coercion from `F` to
 `MulSemiringActionHom M X Y`. -/
 @[coe]
-def _root_.MulSemiringActionHomClass.toMulSemiringActionHom [MulSemiringActionHomClass F M R S]
+def _root_.MulSemiringActionHomClass.toMulSemiringActionHom [FunLike F R S]
+    [MulSemiringActionHomClass F M R S]
     (f : F) : R →+*[M] S :=
  { (f : R →+* S), (f : R →+[M] S) with }
 
 /-- Any type satisfying `MulSemiringActionHomClass` can be cast into `MulSemiringActionHom` via
   `MulSemiringActionHomClass.toMulSemiringActionHom`. -/
-instance [MulSemiringActionHomClass F M R S] : CoeTC F (R →+*[M] S) :=
+instance [FunLike F R S] [MulSemiringActionHomClass F M R S] :
+    CoeTC F (R →+*[M] S) :=
   ⟨MulSemiringActionHomClass.toMulSemiringActionHom⟩
 
 @[norm_cast]
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
@@ -76,7 +76,7 @@ scalar multiplication by `M`.
 
 You should extend this class when you extend `MulActionHom`. -/
 class SMulHomClass (F : Type*) (M X Y : outParam <| Type*) [SMul M X] [SMul M Y] extends
-  FunLike F X fun _ => Y where
+  DFunLike F X fun _ => Y where
   /-- The proposition that the function preserves the action. -/
   map_smul : ∀ (f : F) (c : M) (x : X), f (c • x) = c • f x
 #align smul_hom_class SMulHomClass
@@ -109,7 +109,7 @@ see also Algebra.Hom.Group -/
 @[coe]
 def _root_.SMulHomClass.toMulActionHom [SMul M X] [SMul M Y] [SMulHomClass F M X Y] (f : F) :
     X →[M] Y where
-   toFun := FunLike.coe f
+   toFun := DFunLike.coe f
    map_smul' := map_smul f
 
 /-- Any type satisfying `SMulHomClass` can be cast into `MulActionHom` via
@@ -130,15 +130,15 @@ protected theorem map_smul (f : X →[M'] Y) (m : M') (x : X) : f (m • x) = m
 
 @[ext]
 theorem ext {f g : X →[M'] Y} : (∀ x, f x = g x) → f = g :=
-  FunLike.ext f g
+  DFunLike.ext f g
 #align mul_action_hom.ext MulActionHom.ext
 
 theorem ext_iff {f g : X →[M'] Y} : f = g ↔ ∀ x, f x = g x :=
-  FunLike.ext_iff
+  DFunLike.ext_iff
 #align mul_action_hom.ext_iff MulActionHom.ext_iff
 
 protected theorem congr_fun {f g : X →[M'] Y} (h : f = g) (x : X) : f x = g x :=
-  FunLike.congr_fun h _
+  DFunLike.congr_fun h _
 #align mul_action_hom.congr_fun MulActionHom.congr_fun
 
 variable (M M')
@@ -293,15 +293,15 @@ theorem coe_fn_coe' (f : A →+[M] B) : ⇑(f : A →[M] B) = f :=
 
 @[ext]
 theorem ext {f g : A →+[M] B} : (∀ x, f x = g x) → f = g :=
-  FunLike.ext f g
+  DFunLike.ext f g
 #align distrib_mul_action_hom.ext DistribMulActionHom.ext
 
 theorem ext_iff {f g : A →+[M] B} : f = g ↔ ∀ x, f x = g x :=
-  FunLike.ext_iff
+  DFunLike.ext_iff
 #align distrib_mul_action_hom.ext_iff DistribMulActionHom.ext_iff
 
 protected theorem congr_fun {f g : A →+[M] B} (h : f = g) (x : A) : f x = g x :=
-  FunLike.congr_fun h _
+  DFunLike.congr_fun h _
 #align distrib_mul_action_hom.congr_fun DistribMulActionHom.congr_fun
 
 theorem toMulActionHom_injective {f g : A →+[M] B} (h : (f : A →[M] B) = (g : A →[M] B)) :
@@ -312,7 +312,7 @@ theorem toMulActionHom_injective {f g : A →+[M] B} (h : (f : A →[M] B) = (g
 
 theorem toAddMonoidHom_injective {f g : A →+[M] B} (h : (f : A →+ B) = (g : A →+ B)) : f = g := by
   ext a
-  exact FunLike.congr_fun h a
+  exact DFunLike.congr_fun h a
 #align distrib_mul_action_hom.to_add_monoid_hom_injective DistribMulActionHom.toAddMonoidHom_injective
 
 protected theorem map_zero (f : A →+[M] B) : f 0 = 0 :=
@@ -525,11 +525,11 @@ theorem coe_fn_coe' (f : R →+*[M] S) : ⇑(f : R →+[M] S) = f :=
 
 @[ext]
 theorem ext {f g : R →+*[M] S} : (∀ x, f x = g x) → f = g :=
-  FunLike.ext f g
+  DFunLike.ext f g
 #align mul_semiring_action_hom.ext MulSemiringActionHom.ext
 
 theorem ext_iff {f g : R →+*[M] S} : f = g ↔ ∀ x, f x = g x :=
-  FunLike.ext_iff
+  DFunLike.ext_iff
 #align mul_semiring_action_hom.ext_iff MulSemiringActionHom.ext_iff
 
 protected theorem map_zero (f : R →+*[M] S) : f 0 = 0 :=
feat(Algebra): generalize Basis.smul (#9382)

Add various LinearMap.CompatibleSMul instances that ultimately lead to generalization of Basis.smul to allow a noncommutative base ring. The key observations that allows the generalization are IsScalarTower.smulHomClass and isScalarTower_of_injective.

Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>

Diff
@@ -117,6 +117,13 @@ def _root_.SMulHomClass.toMulActionHom [SMul M X] [SMul M Y] [SMulHomClass F M X
 instance [SMul M X] [SMul M Y] [SMulHomClass F M X Y] : CoeTC F (X →[M] Y) :=
   ⟨SMulHomClass.toMulActionHom⟩
 
+variable (M' X Y F) in
+/-- If Y/X/M forms a scalar tower, any map X → Y preserving X-action also preserves M-action. -/
+def _root_.IsScalarTower.smulHomClass [MulOneClass X] [SMul X Y] [IsScalarTower M' X Y]
+    [SMulHomClass F X X Y] : SMulHomClass F M' X Y where
+  map_smul f m x := by
+    rw [← mul_one (m • x), ← smul_eq_mul, map_smul, smul_assoc, ← map_smul, smul_eq_mul, mul_one]
+
 protected theorem map_smul (f : X →[M'] Y) (m : M') (x : X) : f (m • x) = m • f x :=
   map_smul f m x
 #align mul_action_hom.map_smul MulActionHom.map_smul
chore: exactly 4 spaces in theorems (#7328)

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

Diff
@@ -262,7 +262,7 @@ see also Algebra.Hom.Group -/
 `MulActionHom`. This is declared as the default coercion from `F` to `MulActionHom M X Y`. -/
 @[coe]
 def _root_.DistribMulActionHomClass.toDistribMulActionHom [DistribMulActionHomClass F M A B]
-  (f : F) : A →+[M] B :=
+    (f : F) : A →+[M] B :=
   { (f : A →+ B), (f : A →[M] B) with }
 
 /-- Any type satisfying `SMulHomClass` can be cast into `MulActionHom` via
@@ -498,7 +498,7 @@ see also Algebra.Hom.Group -/
 `MulSemiringActionHom M X Y`. -/
 @[coe]
 def _root_.MulSemiringActionHomClass.toMulSemiringActionHom [MulSemiringActionHomClass F M R S]
-  (f : F) : R →+*[M] S :=
+    (f : F) : R →+*[M] S :=
  { (f : R →+* S), (f : R →+[M] S) with }
 
 /-- Any type satisfying `MulSemiringActionHomClass` can be cast into `MulSemiringActionHom` via
chore: make fields of algebraic (iso)morphisms protected (#7150)

Pretty much all these fields are implementation details, and not intended as API. There is no point in open MonoidHom bringing toFun or map_mul' into the environment, as neither are the preferred way to spell those things.

Diff
@@ -61,9 +61,9 @@ variable (T : Type*) [Semiring T] [MulSemiringAction M T]
 -- @[nolint has_nonempty_instance]
 structure MulActionHom where
   /-- The underlying function. -/
-  toFun : X → Y
+  protected toFun : X → Y
   /-- The proposition that the function preserves the action. -/
-  map_smul' : ∀ (m : M') (x : X), toFun (m • x) = m • toFun x
+  protected map_smul' : ∀ (m : M') (x : X), toFun (m • x) = m • toFun x
 #align mul_action_hom MulActionHom
 
 /- Porting note: local notation given a name, conflict with Algebra.Hom.GroupAction
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
@@ -36,6 +36,8 @@ The above types have corresponding classes:
 
 -/
 
+set_option autoImplicit true
+
 assert_not_exists Submonoid
 
 variable (M' : Type*)
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
@@ -38,21 +38,21 @@ The above types have corresponding classes:
 
 assert_not_exists Submonoid
 
-variable (M' : Type _)
-variable (X : Type _) [SMul M' X]
-variable (Y : Type _) [SMul M' Y]
-variable (Z : Type _) [SMul M' Z]
-variable (M : Type _) [Monoid M]
-variable (A : Type _) [AddMonoid A] [DistribMulAction M A]
-variable (A' : Type _) [AddGroup A'] [DistribMulAction M A']
-variable (B : Type _) [AddMonoid B] [DistribMulAction M B]
-variable (B' : Type _) [AddGroup B'] [DistribMulAction M B']
-variable (C : Type _) [AddMonoid C] [DistribMulAction M C]
-variable (R : Type _) [Semiring R] [MulSemiringAction M R]
-variable (R' : Type _) [Ring R'] [MulSemiringAction M R']
-variable (S : Type _) [Semiring S] [MulSemiringAction M S]
-variable (S' : Type _) [Ring S'] [MulSemiringAction M S']
-variable (T : Type _) [Semiring T] [MulSemiringAction M T]
+variable (M' : Type*)
+variable (X : Type*) [SMul M' X]
+variable (Y : Type*) [SMul M' Y]
+variable (Z : Type*) [SMul M' Z]
+variable (M : Type*) [Monoid M]
+variable (A : Type*) [AddMonoid A] [DistribMulAction M A]
+variable (A' : Type*) [AddGroup A'] [DistribMulAction M A']
+variable (B : Type*) [AddMonoid B] [DistribMulAction M B]
+variable (B' : Type*) [AddGroup B'] [DistribMulAction M B']
+variable (C : Type*) [AddMonoid C] [DistribMulAction M C]
+variable (R : Type*) [Semiring R] [MulSemiringAction M R]
+variable (R' : Type*) [Ring R'] [MulSemiringAction M R']
+variable (S : Type*) [Semiring S] [MulSemiringAction M S]
+variable (S' : Type*) [Ring S'] [MulSemiringAction M S']
+variable (T : Type*) [Semiring T] [MulSemiringAction M T]
 
 /-- Equivariant functions. -/
 -- Porting note: This linter does not exist yet
@@ -73,7 +73,7 @@ notation:25 (name := «MulActionHomLocal≺») X " →[" M:25 "] " Y:0 => MulAct
 scalar multiplication by `M`.
 
 You should extend this class when you extend `MulActionHom`. -/
-class SMulHomClass (F : Type _) (M X Y : outParam <| Type _) [SMul M X] [SMul M Y] extends
+class SMulHomClass (F : Type*) (M X Y : outParam <| Type*) [SMul M X] [SMul M Y] extends
   FunLike F X fun _ => Y where
   /-- The proposition that the function preserves the action. -/
   map_smul : ∀ (f : F) (c : M) (x : X), f (c • x) = c • f x
@@ -189,7 +189,7 @@ end MulActionHom
 /-- If actions of `M` and `N` on `α` commute, then for `c : M`, `(c • · : α → α)` is an `N`-action
 homomorphism. -/
 @[simps]
-def SMulCommClass.toMulActionHom {M} (N α : Type _) [SMul M α] [SMul N α] [SMulCommClass M N α]
+def SMulCommClass.toMulActionHom {M} (N α : Type*) [SMul M α] [SMul N α] [SMulCommClass M N α]
     (c : M) : α →[N] α where
   toFun := (c • ·)
   map_smul' := smul_comm _
@@ -216,7 +216,7 @@ notation:25 (name := «DistribMulActionHomLocal≺»)
 the additive monoid structure and scalar multiplication by `M`.
 
 You should extend this class when you extend `DistribMulActionHom`. -/
-class DistribMulActionHomClass (F : Type _) (M A B : outParam <| Type _) [Monoid M] [AddMonoid A]
+class DistribMulActionHomClass (F : Type*) (M A B : outParam <| Type*) [Monoid M] [AddMonoid A]
   [AddMonoid B] [DistribMulAction M A] [DistribMulAction M B] extends SMulHomClass F M A B,
   AddMonoidHomClass F A B
 #align distrib_mul_action_hom_class DistribMulActionHomClass
@@ -417,7 +417,7 @@ end DistribMulActionHom
 /-- If `DistribMulAction` of `M` and `N` on `A` commute, then for each `c : M`, `(c • ·)` is an
 `N`-action additive homomorphism. -/
 @[simps]
-def SMulCommClass.toDistribMulActionHom {M} (N A : Type _) [Monoid N] [AddMonoid A]
+def SMulCommClass.toDistribMulActionHom {M} (N A : Type*) [Monoid N] [AddMonoid A]
     [DistribSMul M A] [DistribMulAction N A] [SMulCommClass M N A] (c : M) : A →+[N] A :=
   { SMulCommClass.toMulActionHom N A c, DistribSMul.toAddMonoidHom _ c with
     toFun := (c • ·) }
@@ -446,7 +446,7 @@ notation:25 (name := «MulSemiringActionHomLocal≺»)
 the ring structure and scalar multiplication by `M`.
 
 You should extend this class when you extend `MulSemiringActionHom`. -/
-class MulSemiringActionHomClass (F : Type _) (M R S : outParam <| Type _) [Monoid M] [Semiring R]
+class MulSemiringActionHomClass (F : Type*) (M R S : outParam <| Type*) [Monoid M] [Semiring R]
   [Semiring S] [DistribMulAction M R] [DistribMulAction M S] extends
   DistribMulActionHomClass F M R S, RingHomClass F R S
 #align mul_semiring_action_hom_class MulSemiringActionHomClass
chore(Algebra/Hom/GroupAction): add initialize_simps_projections (#6343)

Without this change the lemmas were called *_toFun instead of *_apply.

These lines should go immediately after the (transitive) FunLike instance is configured.

This PR also tidies some whitespace around wheres.

Diff
@@ -89,12 +89,13 @@ attribute [simp] map_smul
 -- porting note: removed has_coe_to_fun instance, coercions handled differently now
 #noalign mul_action_hom.has_coe_to_fun
 
-instance : SMulHomClass (X →[M'] Y) M' X Y
-    where
+instance : SMulHomClass (X →[M'] Y) M' X Y where
   coe := MulActionHom.toFun
   coe_injective' f g h := by cases f; cases g; congr
   map_smul := MulActionHom.map_smul'
 
+initialize_simps_projections MulActionHom (toFun → apply)
+
 namespace MulActionHom
 
 variable {M M' X Y}
@@ -173,15 +174,14 @@ variable {A B}
 /-- The inverse of a bijective equivariant map is equivariant. -/
 @[simps]
 def inverse (f : A →[M] B) (g : B → A) (h₁ : Function.LeftInverse g f)
-    (h₂ : Function.RightInverse g f) : B →[M] A
-    where
+    (h₂ : Function.RightInverse g f) : B →[M] A where
   toFun := g
   map_smul' m x :=
     calc
       g (m • x) = g (m • f (g x)) := by rw [h₂]
       _ = g (f (m • g x)) := by rw [f.map_smul]
       _ = m • g x := by rw [h₁]
-#align mul_action_hom.inverse_to_fun MulActionHom.inverse_toFun
+#align mul_action_hom.inverse_to_fun MulActionHom.inverse_apply
 #align mul_action_hom.inverse MulActionHom.inverse
 
 end MulActionHom
@@ -242,8 +242,7 @@ Coercion is already handled by all the HomClass constructions I believe -/
 #noalign distrib_mul_action_hom.has_coe'
 #noalign distrib_mul_action_hom.has_coe_to_fun
 
-instance : DistribMulActionHomClass (A →+[M] B) M A B
-    where
+instance : DistribMulActionHomClass (A →+[M] B) M A B where
   coe m := m.toFun
   coe_injective' f g h := by
     rcases f with ⟨tF, _, _⟩; rcases g with ⟨tG, _, _⟩
@@ -252,6 +251,8 @@ instance : DistribMulActionHomClass (A →+[M] B) M A B
   map_zero := DistribMulActionHom.map_zero'
   map_add := DistribMulActionHom.map_add'
 
+initialize_simps_projections DistribMulActionHom (toFun → apply)
+
 variable {M A B}
 /- porting note: inserted following def & instance for consistent coercion behaviour,
 see also Algebra.Hom.Group -/
@@ -473,8 +474,7 @@ Coercion is already handled by all the HomClass constructions I believe -/
 #noalign mul_semiring_action_hom.has_coe'
 #noalign mul_semiring_action_hom.has_coe_to_fun
 
-instance : MulSemiringActionHomClass (R →+*[M] S) M R S
-    where
+instance : MulSemiringActionHomClass (R →+*[M] S) M R S where
   coe m := m.toFun
   coe_injective' f g h := by
     rcases f with ⟨⟨tF, _, _⟩, _, _⟩; rcases g with ⟨⟨tG, _, _⟩, _, _⟩
@@ -485,6 +485,8 @@ instance : MulSemiringActionHomClass (R →+*[M] S) M R S
   map_one := MulSemiringActionHom.map_one'
   map_mul := MulSemiringActionHom.map_mul'
 
+initialize_simps_projections MulSemiringActionHom (toFun → apply)
+
 variable {M R S}
 
 /- porting note: inserted following def & instance for consistent coercion behaviour,
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,15 +2,12 @@
 Copyright (c) 2020 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau
-
-! This file was ported from Lean 3 source module algebra.hom.group_action
-! leanprover-community/mathlib commit e7bab9a85e92cf46c02cb4725a7be2f04691e3a7
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.GroupRingAction.Basic
 import Mathlib.Algebra.Module.Basic
 
+#align_import algebra.hom.group_action from "leanprover-community/mathlib"@"e7bab9a85e92cf46c02cb4725a7be2f04691e3a7"
+
 /-!
 # Equivariant homomorphisms
 
chore: cleanup whitespace (#5988)

Grepping for [^ .:{-] [^ :] and reviewing the results. Once I started I couldn't stop. :-)

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

Diff
@@ -263,7 +263,7 @@ see also Algebra.Hom.Group -/
 @[coe]
 def _root_.DistribMulActionHomClass.toDistribMulActionHom [DistribMulActionHomClass F M A B]
   (f : F) : A →+[M] B :=
-  { (f : A →+ B),  (f : A →[M] B) with }
+  { (f : A →+ B), (f : A →[M] B) with }
 
 /-- Any type satisfying `SMulHomClass` can be cast into `MulActionHom` via
   `SMulHomClass.toMulActionHom`. -/
@@ -498,7 +498,7 @@ see also Algebra.Hom.Group -/
 @[coe]
 def _root_.MulSemiringActionHomClass.toMulSemiringActionHom [MulSemiringActionHomClass F M R S]
   (f : F) : R →+*[M] S :=
- { (f : R →+* S),  (f : R →+[M] S) with }
+ { (f : R →+* S), (f : R →+[M] S) with }
 
 /-- Any type satisfying `MulSemiringActionHomClass` can be cast into `MulSemiringActionHom` via
   `MulSemiringActionHomClass.toMulSemiringActionHom`. -/
feat: actions of DomMulAct on A →[N] B and A →+[N] B (#5378)

Refs #5379

Diff
@@ -185,11 +185,18 @@ def inverse (f : A →[M] B) (g : B → A) (h₁ : Function.LeftInverse g f)
       _ = g (f (m • g x)) := by rw [f.map_smul]
       _ = m • g x := by rw [h₁]
 #align mul_action_hom.inverse_to_fun MulActionHom.inverse_toFun
-
 #align mul_action_hom.inverse MulActionHom.inverse
 
 end MulActionHom
 
+/-- If actions of `M` and `N` on `α` commute, then for `c : M`, `(c • · : α → α)` is an `N`-action
+homomorphism. -/
+@[simps]
+def SMulCommClass.toMulActionHom {M} (N α : Type _) [SMul M α] [SMul N α] [SMulCommClass M N α]
+    (c : M) : α →[N] α where
+  toFun := (c • ·)
+  map_smul' := smul_comm _
+
 /-- Equivariant additive monoid homomorphisms. -/
 structure DistribMulActionHom extends A →[M] B, A →+ B
 #align distrib_mul_action_hom DistribMulActionHom
@@ -409,6 +416,14 @@ end Semiring
 
 end DistribMulActionHom
 
+/-- If `DistribMulAction` of `M` and `N` on `A` commute, then for each `c : M`, `(c • ·)` is an
+`N`-action additive homomorphism. -/
+@[simps]
+def SMulCommClass.toDistribMulActionHom {M} (N A : Type _) [Monoid N] [AddMonoid A]
+    [DistribSMul M A] [DistribMulAction N A] [SMulCommClass M N A] (c : M) : A →+[N] A :=
+  { SMulCommClass.toMulActionHom N A c, DistribSMul.toAddMonoidHom _ c with
+    toFun := (c • ·) }
+
 /-- Equivariant ring homomorphisms. -/
 -- Porting note: This linter does not exist yet
 -- @[nolint has_nonempty_instance]
chore: formatting issues (#4947)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -264,7 +264,7 @@ instance [DistribMulActionHomClass F M A B] : CoeTC F (A →+[M] B) :=
   ⟨DistribMulActionHomClass.toDistribMulActionHom⟩
 
 @[simp]
-theorem toFun_eq_coe (f : A →+[M] B): f.toFun = f := rfl
+theorem toFun_eq_coe (f : A →+[M] B) : f.toFun = f := rfl
 #align distrib_mul_action_hom.to_fun_eq_coe DistribMulActionHom.toFun_eq_coe
 
 @[norm_cast]
feat: assert_not_exists (#4245)
Diff
@@ -39,8 +39,7 @@ The above types have corresponding classes:
 
 -/
 
---Porting note: assert_not_exists is not yet implemented
---assert_not_exists Submonoid
+assert_not_exists Submonoid
 
 variable (M' : Type _)
 variable (X : Type _) [SMul M' X]
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
@@ -297,8 +297,7 @@ theorem toMulActionHom_injective {f g : A →+[M] B} (h : (f : A →[M] B) = (g
   exact MulActionHom.congr_fun h a
 #align distrib_mul_action_hom.to_mul_action_hom_injective DistribMulActionHom.toMulActionHom_injective
 
-theorem toAddMonoidHom_injective {f g : A →+[M] B} (h : (f : A →+ B) = (g : A →+ B)) : f = g :=
-  by
+theorem toAddMonoidHom_injective {f g : A →+[M] B} (h : (f : A →+ B) = (g : A →+ B)) : f = g := by
   ext a
   exact FunLike.congr_fun h a
 #align distrib_mul_action_hom.to_add_monoid_hom_injective DistribMulActionHom.toAddMonoidHom_injective
@@ -398,8 +397,7 @@ variable {R M'}
 variable [AddMonoid M'] [DistribMulAction R M']
 
 @[ext]
-theorem ext_ring {f g : R →+[R] M'} (h : f 1 = g 1) : f = g :=
-  by
+theorem ext_ring {f g : R →+[R] M'} (h : f 1 = g 1) : f = g := by
   ext x
   rw [← mul_one x, ← smul_eq_mul R, f.map_smul, g.map_smul, h]
 #align distrib_mul_action_hom.ext_ring DistribMulActionHom.ext_ring
chore: add missing #align statements (#1902)

This PR is the result of a slight variant on the following "algorithm"

  • take all mathlib 3 names, remove _ and make all uppercase letters into lowercase
  • take all mathlib 4 names, remove _ and make all uppercase letters into lowercase
  • look for matches, and create pairs (original_lean3_name, OriginalLean4Name)
  • for pairs that do not have an align statement:
    • use Lean 4 to lookup the file + position of the Lean 4 name
    • add an #align statement just before the next empty line
  • manually fix some tiny mistakes (e.g., empty lines in proofs might cause the #align statement to have been inserted too early)
Diff
@@ -185,6 +185,7 @@ def inverse (f : A →[M] B) (g : B → A) (h₁ : Function.LeftInverse g f)
       g (m • x) = g (m • f (g x)) := by rw [h₂]
       _ = g (f (m • g x)) := by rw [f.map_smul]
       _ = m • g x := by rw [h₁]
+#align mul_action_hom.inverse_to_fun MulActionHom.inverse_toFun
 
 #align mul_action_hom.inverse MulActionHom.inverse
 
@@ -196,9 +197,11 @@ structure DistribMulActionHom extends A →[M] B, A →+ B
 
 /-- Reinterpret an equivariant additive monoid homomorphism as an additive monoid homomorphism. -/
 add_decl_doc DistribMulActionHom.toAddMonoidHom
+#align distrib_mul_action_hom.to_add_monoid_hom DistribMulActionHom.toAddMonoidHom
 
 /-- Reinterpret an equivariant additive monoid homomorphism as an equivariant function. -/
 add_decl_doc DistribMulActionHom.toMulActionHom
+#align distrib_mul_action_hom.to_mul_action_hom DistribMulActionHom.toMulActionHom
 
 /- Porting note: local notation given a name, conflict with Algebra.Hom.Freiman
  see https://github.com/leanprover/lean4/issues/2000 -/
@@ -417,9 +420,11 @@ structure MulSemiringActionHom extends R →+[M] S, R →+* S
 
 /-- Reinterpret an equivariant ring homomorphism as a ring homomorphism. -/
 add_decl_doc MulSemiringActionHom.toRingHom
+#align mul_semiring_action_hom.to_ring_hom MulSemiringActionHom.toRingHom
 
 /-- Reinterpret an equivariant ring homomorphism as an equivariant additive monoid homomorphism. -/
 add_decl_doc MulSemiringActionHom.toDistribMulActionHom
+#align mul_semiring_action_hom.to_distrib_mul_action_hom MulSemiringActionHom.toDistribMulActionHom
 
 /- Porting note: local notation given a name, conflict with Algebra.Hom.Freiman
  see https://github.com/leanprover/lean4/issues/2000 -/
feat: port Algebra.Hom.Freiman (#1538)

Co-authored-by: qawbecrdtey <qawbecrdtey@naver.com> Co-authored-by: Moritz Firsching <firsching@google.com> Co-authored-by: Lukas Miaskiwskyi <lukas.mias@gmail.com>

Diff
@@ -68,8 +68,10 @@ structure MulActionHom where
   map_smul' : ∀ (m : M') (x : X), toFun (m • x) = m • toFun x
 #align mul_action_hom MulActionHom
 
+/- Porting note: local notation given a name, conflict with Algebra.Hom.GroupAction
+ see https://github.com/leanprover/lean4/issues/2000 -/
 @[inherit_doc]
-notation:25 X " →[" M:25 "] " Y:0 => MulActionHom M X Y
+notation:25 (name := «MulActionHomLocal≺») X " →[" M:25 "] " Y:0 => MulActionHom M X Y
 
 /-- `SMulHomClass F M X Y` states that `F` is a type of morphisms preserving
 scalar multiplication by `M`.
@@ -198,8 +200,11 @@ add_decl_doc DistribMulActionHom.toAddMonoidHom
 /-- Reinterpret an equivariant additive monoid homomorphism as an equivariant function. -/
 add_decl_doc DistribMulActionHom.toMulActionHom
 
+/- Porting note: local notation given a name, conflict with Algebra.Hom.Freiman
+ see https://github.com/leanprover/lean4/issues/2000 -/
 @[inherit_doc]
-notation:25 A " →+[" M:25 "] " B:0 => DistribMulActionHom M A B
+notation:25 (name := «DistribMulActionHomLocal≺»)
+  A " →+[" M:25 "] " B:0 => DistribMulActionHom M A B
 
 /-- `DistribMulActionHomClass F M A B` states that `F` is a type of morphisms preserving
 the additive monoid structure and scalar multiplication by `M`.
@@ -416,8 +421,11 @@ add_decl_doc MulSemiringActionHom.toRingHom
 /-- Reinterpret an equivariant ring homomorphism as an equivariant additive monoid homomorphism. -/
 add_decl_doc MulSemiringActionHom.toDistribMulActionHom
 
+/- Porting note: local notation given a name, conflict with Algebra.Hom.Freiman
+ see https://github.com/leanprover/lean4/issues/2000 -/
 @[inherit_doc]
-notation:25 R " →+*[" M:25 "] " S:0 => MulSemiringActionHom M R S
+notation:25 (name := «MulSemiringActionHomLocal≺»)
+  R " →+*[" M:25 "] " S:0 => MulSemiringActionHom M R S
 
 /-- `MulSemiringActionHomClass F M R S` states that `F` is a type of morphisms preserving
 the ring structure and scalar multiplication by `M`.
chore: the style linter shouldn't complain about long #align lines (#1643)
Diff
@@ -287,15 +287,13 @@ theorem toMulActionHom_injective {f g : A →+[M] B} (h : (f : A →[M] B) = (g
     f = g := by
   ext a
   exact MulActionHom.congr_fun h a
-#align
-  distrib_mul_action_hom.to_mul_action_hom_injective DistribMulActionHom.toMulActionHom_injective
+#align distrib_mul_action_hom.to_mul_action_hom_injective DistribMulActionHom.toMulActionHom_injective
 
 theorem toAddMonoidHom_injective {f g : A →+[M] B} (h : (f : A →+ B) = (g : A →+ B)) : f = g :=
   by
   ext a
   exact FunLike.congr_fun h a
-#align
-  distrib_mul_action_hom.to_add_monoid_hom_injective DistribMulActionHom.toAddMonoidHom_injective
+#align distrib_mul_action_hom.to_add_monoid_hom_injective DistribMulActionHom.toAddMonoidHom_injective
 
 protected theorem map_zero (f : A →+[M] B) : f 0 = 0 :=
   map_zero f
feat: port Algebra.Hom.GroupAction (#1424)

Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com> Co-authored-by: Lukas Miaskiwskyi <lukas.mias@gmail.com> Co-authored-by: Chris Hughes <33847686+ChrisHughes24@users.noreply.github.com>

Dependencies 3 + 145

146 files ported (98.0%)
58233 lines ported (98.2%)
Show graph

The unported dependencies are