algebra.hom.group_action
⟷
Mathlib.GroupTheory.GroupAction.Hom
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.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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]
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -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}
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -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}
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -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) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -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 :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce86f4e05e9a9b8da5e316b22c76ce76440c56a1
@@ -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ₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -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 :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/38f16f960f5006c6c0c2bac7b0aba5273188f4e5
@@ -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 :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
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>
@@ -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
@@ -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
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 φ
-equivariantDistribMulActionHomClass F φ A B
states that F
is a type of bundled A → B
homs preserving the additive monoid structure and φ
-equivariantSMulSemiringHomClass F φ R S
states that F
is a type of bundled R → S
homs preserving the ring structure and φ
-equivariantWe 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.
@@ -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
@@ -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) :=
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -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'
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.
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]
.
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_param
s, [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 sometimesThis 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.
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 outParam
s 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.)
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>
@@ -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]
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>
@@ -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 :=
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>
@@ -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
@@ -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
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.
@@ -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
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:
variables
are in scope, but pasting the lemma in the wrong sectionHaving set_option autoImplicit false
as the default prevents these types of mistake being made in the 90% of files where autoImplicit
s 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.
@@ -36,6 +36,8 @@ The above types have corresponding classes:
-/
+set_option autoImplicit true
+
assert_not_exists Submonoid
variable (M' : Type*)
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -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
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 where
s.
@@ -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,
@@ -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
@@ -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`. -/
@@ -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]
@@ -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]
@@ -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]
by
s! (#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 by
s".
@@ -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
This PR is the result of a slight variant on the following "algorithm"
_
and make all uppercase letters into lowercase_
and make all uppercase letters into lowercase(original_lean3_name, OriginalLean4Name)
#align
statement just before the next empty line#align
statement to have been inserted too early)@@ -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 -/
@@ -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`.
@@ -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
The unported dependencies are